/*
 * HireFlow visual system — design.md implementation.
 *
 * This file intentionally sits after the legacy dashboard stylesheet. It is
 * the single visual source of truth while the older file continues to own
 * component structure and uncommon application states.
 */

:root {
  --paper: oklch(96.8% 0 0);
  --paper-raised: oklch(99.4% 0 0);
  --surface: oklch(98% 0 0);
  --surface-hover: oklch(95.8% 0 0);
  --warm-surface: oklch(96.5% 0 0);
  --rule: oklch(88% 0 0);
  --rule-mid: oklch(82.5% 0 0);
  --rule-strong: oklch(72% 0 0);
  --ink: oklch(18.5% 0.029 277);
  --ink-900: oklch(18.5% 0.029 277);
  --ink-800: oklch(25% 0.027 276);
  --ink-700: oklch(35% 0.026 275);
  --ink-600: oklch(45.5% 0.021 273);
  --ink-soft: oklch(45.5% 0.021 273);
  --ink-muted: oklch(57% 0.022 273);
  --ink-400: oklch(68% 0.022 273);
  --accent: oklch(55.5% 0.17 278);
  --ai: oklch(55.5% 0.17 278);
  --ai-ink: oklch(46% 0.17 278);
  --focus: oklch(27% 0.018 275);
  --focus-hover: oklch(22% 0.026 277);
  --on-accent: #fff;

  --green-bg: oklch(96.5% 0.035 151);
  --green-ink: oklch(41% 0.11 151);
  --green-border: oklch(83% 0.08 151);
  --amber-bg: oklch(97% 0.04 83);
  --amber-ink: oklch(48% 0.11 63);
  --amber-border: oklch(84% 0.09 77);
  --brass-bg: oklch(97% 0.04 83);
  --brass-ink: oklch(48% 0.11 63);
  --brass-border: oklch(84% 0.09 77);
  --brick-bg: oklch(97% 0.025 20);
  --brick-ink: oklch(48% 0.15 25);
  --brick-border: oklch(86% 0.07 22);
  --gray-bg: oklch(95.8% 0 0);
  --gray-ink: oklch(42% 0 0);
  --gray-border: oklch(88% 0 0);

  --font-display: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
  --font-body: "Manrope", ui-sans-serif, system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;

  --radius-sm: 8px;
  --radius: 12px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-pill: 999px;

  --shadow-sm: 0 1px 2px color-mix(in oklab, var(--ink) 5%, transparent);
  --shadow-card: 0 1px 2px color-mix(in oklab, var(--ink) 4%, transparent),
    0 18px 52px color-mix(in oklab, var(--ink) 8%, transparent);
  --shadow-hover: 0 8px 24px color-mix(in oklab, var(--ink) 10%, transparent);
  --shadow-pop: 0 16px 42px color-mix(in oklab, var(--ink) 15%, transparent);
  --shadow-modal: 0 26px 80px color-mix(in oklab, var(--ink) 20%, transparent);

  --text-xs: 11px;
  --text-sm: 12px;
  --text-md: 13px;
  --text-base: 15px;
  --text-lg: 17px;
  --text-xl: 19px;
  --text-2xl: 22px;
  --text-3xl: 26px;
  --text-4xl: 32px;

  --page-max: 1840px;
  --page-gutter: clamp(16px, 1.5vw, 24px);

  /* Deliberate on-screen travel, used by the cross-route nav indicator. */
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
  --dur-nav-pill: 250ms;

  --space-xxs: 4px;
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-xxl: 48px;
}

* { box-sizing: border-box; }

html { padding-top: 0; background: var(--paper); }

body {
  min-height: 100dvh;
  padding-top: 0;
  color: var(--ink);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  background: var(--paper);
  background-attachment: fixed;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: .1;
  background-image: radial-gradient(circle, color-mix(in oklab, var(--ink) 16%, transparent) .55px, transparent .65px);
  background-size: 18px 18px;
  mask-image: linear-gradient(to bottom, black, transparent 72%);
}

::selection { color: var(--ink); background: color-mix(in oklab, var(--accent) 20%, white); }

.skip-link {
  position: fixed;
  top: 12px;
  left: 50%;
  z-index: 100;
  padding: 10px 16px;
  border-radius: var(--radius);
  color: white;
  background: var(--ink);
  transform: translate(-50%, -160%);
  transition: transform 180ms ease;
}
.skip-link:focus { transform: translate(-50%, 0); }

h1, h2, h3, .nav__brand, .metric__value, .drawer__name {
  font-family: var(--font-display);
  color: var(--ink);
}

h1 { letter-spacing: -.035em; line-height: 1.15; }
h2, h3 { letter-spacing: -.022em; line-height: 1.25; }
p { text-wrap: pretty; }

code, pre, .is-monospace, [data-numeric], .metric__value,
.pagination__info, .status-bar__meta, .bgv-mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

a, button, input, select, textarea, summary { -webkit-tap-highlight-color: transparent; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}

/* Popup scroll containment
   Centered dialogs scroll on their own shell; drawers and assistants scroll
   inside a dedicated body. Keep both scrollbar types away from rounded
   corners and make the visible thumb sit inside, rather than on, the edge. */
dialog { overscroll-behavior: contain; }

dialog:not(#candidate-drawer):not(#bgv-drawer):not(#hireai-dialog):not(.bgv-manual-dialog) {
  scrollbar-gutter: stable both-edges;
}

dialog::-webkit-scrollbar { width: 12px; height: 12px; }
dialog::-webkit-scrollbar-track {
  margin-block: 16px;
  background: transparent;
}
dialog::-webkit-scrollbar-thumb {
  min-height: 44px;
  border: 4px solid transparent;
  border-radius: var(--radius-pill);
  background: var(--rule-mid) content-box;
}
dialog::-webkit-scrollbar-thumb:hover { background-color: var(--ink-muted); }
dialog::-webkit-scrollbar-corner { background: transparent; }

dialog *::-webkit-scrollbar { width: 10px; height: 10px; }
dialog *::-webkit-scrollbar-track {
  margin: 8px;
  background: transparent;
}
dialog *::-webkit-scrollbar-thumb {
  min-height: 36px;
  border: 3px solid transparent;
  border-radius: var(--radius-pill);
  background: var(--rule-mid) content-box;
}
dialog *::-webkit-scrollbar-thumb:hover { background-color: var(--ink-muted); }
dialog *::-webkit-scrollbar-corner { background: transparent; }

/* App shell */
.nav {
  position: sticky;
  top: 0;
  inset-block-start: 0;
  z-index: 20;
  width: min(calc(100% - 32px), calc(var(--page-max) + 48px));
  min-height: 72px;
  margin: 0 auto;
  margin-block-start: 0;
  padding: 0 var(--page-gutter);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(28px, 3.2vw, 52px);
  border: 0;
  border-radius: 0 0 var(--radius-lg) var(--radius-lg);
  background: rgba(198, 202, 210, .38);
  box-shadow:
    0 12px 30px color-mix(in oklab, var(--ink) 10%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, .34);
  -webkit-backdrop-filter: blur(18px) saturate(150%);
  backdrop-filter: blur(18px) saturate(150%);
}

.nav__brand {
  display: inline-flex;
  padding: 0;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -.04em;
  text-decoration: none;
}

.nav__brand-mark {
  display: block;
  width: 32px;
  height: 32px;
  flex: 0 0 32px;
  border-radius: 50%;
  object-fit: cover;
}

.nav__brand::after {
  display: none;
}

.nav__links {
  height: auto;
  align-self: stretch;
  margin: 0;
  display: flex;
  flex: 1 1 auto;
  flex-direction: row;
  align-items: center;
  gap: 0;
}

.nav__tabs {
  position: relative;
  display: inline-flex;
  width: max-content;
  align-items: center;
  gap: 8px;
}

.nav__active-pill {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  filter: drop-shadow(0 7px 10px rgba(12, 14, 24, .19));
}

.nav__active-surface {
  position: absolute;
  inset: 0;
  background: var(--ink-800);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16);
  clip-path: inset(0 100% 0 0 round 999px);
}

.nav__active-surface.is-animated {
  transition: clip-path var(--dur-nav-pill) var(--ease-in-out);
}

.nav__active-label {
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--on-accent);
  white-space: nowrap;
}

.nav__active-pill.is-visible { opacity: 1; }

.nav .nav__link {
  position: relative;
  z-index: 1;
  min-height: 44px;
  padding: 0 16px;
  border: 0;
  border-radius: var(--radius-pill);
  color: var(--ink-700);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.01em;
  background: var(--paper-raised);
  box-shadow: 0 3px 9px rgba(18, 20, 32, .08);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: none;
}

.nav .nav__link:hover {
  color: var(--ink);
  background: var(--paper-raised);
  box-shadow: 0 3px 9px rgba(18, 20, 32, .08);
  transform: none;
}

.nav .nav__link:active { transform: none; }

.nav .nav__link.is-active {
  color: white;
  font-weight: 650;
  background: var(--ink);
  border: 0;
  box-shadow: 0 7px 16px rgba(12, 14, 24, .2);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.nav .nav__tabs.has-active-pill .nav__link {
  color: var(--ink-700);
  font-weight: 600;
  background: var(--paper-raised);
  box-shadow: 0 3px 9px rgba(18, 20, 32, .08);
}
.nav__tabs[aria-busy="true"] .is-nav-target { cursor: progress; }
.nav .nav__tabs.has-active-pill .nav__link:focus-visible { outline-offset: 4px; }

.nav__utility-divider {
  position: relative;
  z-index: 1;
  width: 1px;
  height: 30px;
  margin: 0 2px;
  display: block;
  flex: 0 0 1px;
  border-radius: 1px;
  background: color-mix(in oklab, var(--ink) 22%, transparent);
}

@media (prefers-reduced-transparency: reduce) {
  .nav {
    background: rgb(205, 208, 214);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  .nav__active-surface {
    background: var(--ink);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

}

@media (prefers-contrast: more) {
  .nav .nav__link { border: 1px solid var(--rule-strong); }
  .nav .nav__link.is-active { border-color: var(--ink); background: var(--ink); }
}

@media (prefers-reduced-motion: reduce) {
  .nav .nav__link { transition: none; }
  .nav__active-surface.is-animated { transition: none; }
}

.nav__batch-status {
  margin: 0;
  padding: 0;
  border: 0;
}

.nav__profile-wrap,
.nav__logout {
  margin: 0;
  padding: 0;
  border: 0;
}

.nav__batch-status:not([style*="none"]) + .nav__profile-wrap { margin-left: 0; }

.nav__profile {
  width: auto;
  min-height: 42px;
  justify-content: flex-start;
  gap: 9px;
  padding: 4px 9px 4px 4px;
  border-color: transparent;
  border-radius: 13px;
  color: var(--ink);
  background: transparent;
  box-shadow: none;
}

.nav__profile:hover {
  border-color: var(--rule);
  color: var(--ink);
  background: var(--surface);
  box-shadow: none;
}

.nav__profile:active {
  transform: none;
  background: var(--surface-hover);
  box-shadow: none;
}

.nav__profile[aria-expanded="true"] {
  border-color: var(--rule);
  background: var(--paper-raised);
  box-shadow: var(--shadow-sm);
}

.nav__profile:focus-visible {
  border-color: var(--rule-mid);
  outline: 2px solid color-mix(in oklab, var(--focus) 24%, transparent);
  outline-offset: 2px;
  box-shadow: none;
}

.nav__profile-avatar {
  width: 32px;
  height: 32px;
  border-radius: 10px;
  color: white;
  background: var(--ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -.01em;
}

.nav__profile-name {
  color: var(--ink-800);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -.01em;
}

.nav__profile-chevron {
  width: 15px;
  height: 15px;
  margin-left: 2px;
  color: var(--ink-muted);
  stroke-width: 1.8;
}

.nav__profile-menu {
  top: calc(100% + 8px);
  right: 0;
  bottom: auto;
  left: auto;
  min-width: 176px;
  padding: 5px;
  border-color: var(--rule);
  border-radius: 13px;
  background: color-mix(in oklab, var(--paper-raised) 96%, transparent);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--ink) 5%, transparent),
    0 14px 36px color-mix(in oklab, var(--ink) 13%, transparent);
  transform-origin: top right;
  backdrop-filter: blur(14px);
}

.nav__profile-menu::before { display: none; }

.nav__profile-menu form { margin: 0; }

.nav__profile-menu-item {
  min-height: 40px;
  justify-content: flex-start;
  gap: 9px;
  padding: 8px 10px;
  border: 0;
  border-radius: 9px;
  color: var(--ink-700);
  background: transparent;
  font-size: 13px;
  font-weight: 600;
  box-shadow: none;
}

.nav__profile-menu-item svg {
  width: 17px;
  height: 17px;
  color: var(--ink-muted);
  stroke-width: 1.8;
}

.nav__profile-menu-item:hover {
  color: var(--ink);
  background: var(--surface-hover);
  box-shadow: none;
}

.nav__profile-menu-item:hover svg { color: var(--ink-700); }

.nav__profile-menu-item:active {
  transform: none;
  background: color-mix(in oklab, var(--surface-hover) 80%, var(--rule));
  box-shadow: none;
}

.nav__profile-menu-item:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--focus) 24%, transparent);
  outline-offset: -2px;
}

.page {
  width: 100%;
  max-width: var(--page-max);
  min-height: 100dvh;
  margin: 0 auto;
  padding: 52px var(--page-gutter) 96px;
}

.page-header,
.bgv-head {
  align-items: flex-end;
  margin-bottom: 38px;
}

.page-header h1,
.bgv-head h1 {
  margin: 0;
  font-size: clamp(28px, 2.25vw, 36px);
  font-weight: 700;
  letter-spacing: -.04em;
}

.page-header p,
.bgv-head__sub {
  max-width: 64ch;
  margin-top: 9px;
  color: var(--ink-soft);
  font-size: 15px;
  line-height: 1.55;
}

.page-header__actions { align-items: center; gap: 8px; }

/* Controls */
label {
  margin-bottom: 7px;
  color: var(--ink-700);
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .005em;
}

input[type="text"],
input[type="number"],
input[type="password"],
input[type="date"],
input[type="url"],
input[type="search"],
input[type="email"],
input[type="tel"],
input[type="month"],
select,
textarea {
  min-height: 44px;
  padding: 10px 13px;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  color: var(--ink);
  background: color-mix(in oklab, var(--paper-raised) 96%, transparent);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.45;
  box-shadow: inset 0 1px 0 color-mix(in oklab, white 90%, transparent);
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

textarea { min-height: 112px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--ink-400); }

input:hover, select:hover, textarea:hover { border-color: var(--rule-mid); }
input:focus-visible, select:focus-visible, textarea:focus-visible {
  border-color: var(--focus);
  outline: 2px solid color-mix(in oklab, var(--focus) 26%, transparent);
  outline-offset: 2px;
  box-shadow: none;
}

.field { margin-bottom: 20px; }
.field__hint { margin: 7px 0 0; color: var(--ink-soft); font-size: 12px; line-height: 1.55; }
.field__hint code { color: var(--ink-700); }

button, .btn {
  min-height: 42px;
  padding: 9px 17px;
  gap: 7px;
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  color: white;
  background: var(--ink);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -.005em;
  box-shadow: 0 5px 14px color-mix(in oklab, var(--ink) 13%, transparent);
  transition: transform 100ms ease, background-color 180ms ease,
    border-color 180ms ease, color 180ms ease, box-shadow 180ms ease;
}

button:hover, .btn:hover { background: var(--focus-hover); box-shadow: 0 8px 19px color-mix(in oklab, var(--ink) 17%, transparent); }
button:active, .btn:active { transform: translateY(1px) scale(.985); box-shadow: none; }
button:disabled, .btn:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }

.btn--outline {
  color: var(--ink-700);
  border-color: var(--rule);
  background: var(--paper-raised);
  box-shadow: var(--shadow-sm);
}
.btn--outline:hover { color: var(--ink); border-color: var(--rule-mid); background: var(--surface); box-shadow: var(--shadow-sm); }
/* Split from .link-button, which shared this rule and made both read as
   plain text. .btn--text is a BUTTON — "Reset filters", "Delete all",
   "Remove", "Cancel", "Remove this job" — and with a transparent fill and
   a transparent border it was invisible until hovered, which on a touch
   screen means never. It keeps the quietest of the three tiers (filled
   primary > raised outline > this), but it is unmistakably a control:
   recessed fill, hairline border, no lift. */
.btn--text {
  min-height: 36px;
  padding: 7px 13px;
  color: var(--ink-700);
  border-radius: var(--radius-pill);
  border-color: var(--rule);
  background: var(--surface);
  box-shadow: none;
}
.btn--text:hover {
  color: var(--ink);
  border-color: var(--rule-mid);
  background: var(--surface-hover);
  box-shadow: none;
}

/* A link, not a button. These are inline triggers sitting inside content
   — a role title in a table cell, a disclosure summary, "View all" — so
   boxing them would be wrong; they get a link's own affordance instead.
   The underline is themed rather than left at the browser default. */
.link-button {
  min-height: 36px;
  padding: 7px 9px;
  color: var(--ink-soft);
  border-radius: 9px;
  background: transparent;
  box-shadow: none;
  text-decoration: underline;
  text-decoration-color: var(--rule-mid);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.link-button:hover {
  color: var(--ink);
  background: var(--surface-hover);
  text-decoration-color: currentColor;
  box-shadow: none;
}
.btn--danger { color: var(--brick-ink); border-color: var(--brick-border); background: var(--brick-bg); box-shadow: none; }
.btn--danger:hover { color: var(--brick-ink); border-color: color-mix(in oklab, var(--brick-ink) 38%, var(--brick-border)); background: color-mix(in oklab, var(--brick-bg) 86%, white); }
.btn--success { color: var(--green-ink); border-color: var(--green-border); background: var(--green-bg); box-shadow: none; }
.btn--success:hover { color: var(--green-ink); background: color-mix(in oklab, var(--green-bg) 82%, white); }
.btn--sm { min-height: 34px; padding: 6px 12px; font-size: 12px; }
.btn--icon { width: 38px; height: 38px; min-height: 38px; padding: 0; border-radius: 11px; }

/* Surfaces */
.card,
.bgv-ready,
.bgv-workspace {
  border: 1px solid color-mix(in oklab, var(--rule) 85%, white);
  border-radius: var(--radius-lg);
  background: color-mix(in oklab, var(--paper-raised) 96%, transparent);
  box-shadow: var(--shadow-card);
}

.card { padding: 28px; }
.card + .card { margin-top: 24px; }
.card h2 { margin: 0 0 18px; font-size: 18px; font-weight: 650; }
.card__header { margin-bottom: 22px; }
.card__header h2 { margin: 0; }

.section-label {
  margin: 0 0 12px;
  padding: 0 4px;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 650;
  letter-spacing: -.02em;
}
.section-desc { max-width: 68ch; color: var(--ink-soft); }

.banner {
  padding: 16px 18px;
  border: 1px solid var(--brick-border);
  border: 1px solid var(--brick-ink);
  border-radius: var(--radius);
  color: var(--ink-700);
  background: color-mix(in oklab, var(--brick-bg) 74%, white);
  box-shadow: none;
}
.banner strong { color: var(--ink); font-weight: 650; }
.banner--info { border-color: var(--rule); border-left-color: var(--accent); background: var(--surface); }

/* Overview */
.intake-row { gap: 12px; margin-bottom: 14px; }
.status-bar {
  min-height: 58px;
  padding: 10px 12px 10px 16px;
  gap: 15px;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: color-mix(in oklab, var(--paper-raised) 91%, transparent);
  box-shadow: var(--shadow-sm);
}
.status-bar__dot { font-size: 12px; font-weight: 650; }
.status-bar__meta { color: var(--ink-muted); font-size: 11px; }

/* Activity motion explains the job in progress instead of reusing one
   spinner everywhere: polling radiates outward; resume scoring scans a
   document. Both exist only while the corresponding state is running. */
#status-strip[data-state="running"] .status-bar__dot { position: relative; }
#status-strip[data-state="running"] .status-bar__dot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -3px;
  width: 13px;
  height: 13px;
  border: 1px solid currentColor;
  border-radius: 50%;
  pointer-events: none;
  opacity: .4;
  transform: translateY(-50%) scale(.62);
  animation: polling-radar 1600ms linear infinite;
}

#upload-status-strip[data-state="running"] .status-bar__dot {
  position: relative;
  color: var(--ink);
}
#upload-status-strip[data-state="running"] .status-bar__dot::before {
  width: 12px;
  height: 15px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  background: transparent;
  box-shadow: none;
  animation: none;
}
#upload-status-strip[data-state="running"] .status-bar__dot::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 2px;
  width: 8px;
  height: 1.5px;
  border-radius: 99px;
  background: currentColor;
  pointer-events: none;
  opacity: .25;
  transform: translateY(0);
  animation: document-scan 1200ms linear infinite;
}

.nav__batch-status-dot {
  position: relative;
  width: 12px;
  height: 15px;
  border: 1.5px solid currentColor;
  border-radius: 2px;
  background: transparent;
  animation: none !important;
}
.nav__batch-status-dot::before {
  content: "";
  position: absolute;
  top: -1.5px;
  right: -1.5px;
  width: 4px;
  height: 4px;
  border-bottom: 1px solid currentColor;
  border-left: 1px solid currentColor;
  background: var(--paper-raised);
}
.nav__batch-status-dot::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 1px;
  width: 7px;
  height: 1.5px;
  border-radius: 99px;
  background: currentColor;
  opacity: .25;
  transform: translateY(0);
  animation: document-scan 1200ms linear infinite;
}

@keyframes polling-radar {
  from { opacity: .42; transform: translateY(-50%) scale(.62); }
  to { opacity: 0; transform: translateY(-50%) scale(1.62); }
}
@keyframes document-scan {
  0% { opacity: 0; transform: translateY(0); }
  18% { opacity: .6; }
  82% { opacity: .6; }
  100% { opacity: 0; transform: translateY(7px); }
}

@media (prefers-reduced-motion: reduce) {
  #status-strip[data-state="running"] .status-bar__dot::after,
  #upload-status-strip[data-state="running"] .status-bar__dot::after,
  .nav__batch-status-dot::after { animation: none; opacity: .22; }
}

.metrics-row {
  margin: 14px 0 24px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 10px;
}

.metric {
  min-height: 108px;
  padding: 18px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: color-mix(in oklab, var(--paper-raised) 92%, transparent);
  box-shadow: var(--shadow-sm);
}
.metric:first-child { border-left: 1px solid var(--rule); }
.metric__value { color: var(--ink); font-size: 25px; font-weight: 600; letter-spacing: -.04em; }
.metric__label { color: var(--ink-soft); font-size: 12px; font-weight: 600; }
.metric--attention { border-color: var(--rule); background: color-mix(in oklab, var(--paper-raised) 92%, transparent); }
.metric--attention .metric__value, .metric--attention .metric__label { color: var(--ink); }

.filters { margin-bottom: 20px; }
.filters__fields { gap: 12px; align-items: end; }
.filters__chips { padding: 15px 0; border-top: 1px solid var(--rule); }
.filters__chips-label { margin-bottom: 10px; color: var(--ink-muted); font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.chip-group { gap: 7px; }
.chip {
  min-height: 32px;
  padding: 6px 11px;
  color: var(--ink-soft);
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  background: var(--surface);
  font-size: 12px;
  font-weight: 600;
  box-shadow: none;
}
.chip:hover { color: var(--ink); border-color: var(--rule); background: var(--surface-hover); }
.chip.is-selected { color: var(--ink); border-color: var(--rule-mid); background: var(--warm-surface); font-weight: 650; }

/* One workspace surface: search and dates above a quiet row of status
   shortcuts, then the ledger. Column menus own the detailed filters. */
.candidate-workspace { padding: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.candidate-toolbar {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto auto;
  align-items: center;
  gap: 14px 16px;
  min-width: 0;
  padding: 18px 20px 14px;
}
.candidate-toolbar__search {
  position: relative;
  grid-column: 1;
  grid-row: 1;
  width: min(100%, 440px);
  min-width: 0;
  margin: 0;
}
.candidate-toolbar__search svg {
  position: absolute;
  top: 50%;
  left: 11px;
  width: 16px;
  height: 16px;
  z-index: 1;
  fill: none;
  stroke: var(--ink-muted);
  stroke-linecap: round;
  stroke-width: 1.8;
  transform: translateY(-50%);
  pointer-events: none;
}
.candidate-toolbar__search input {
  width: 100%;
  height: 36px;
  min-height: 36px;
  padding: 6px 10px 6px 34px;
  border-color: var(--rule);
  border-radius: var(--radius-sm);
  background: var(--surface);
  font-size: var(--text-sm);
  box-shadow: none;
}
.candidate-toolbar__search input:focus { background: var(--paper-raised); }
.candidate-toolbar__dates {
  grid-column: 2;
  grid-row: 1;
  display: flex;
  align-items: center;
  height: 36px;
  min-width: 0;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--paper-raised);
}
.candidate-toolbar__dates label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 34px;
  margin: 0;
  padding: 0 10px;
  color: var(--ink-soft);
  font-size: var(--text-xs);
  font-weight: 500;
  line-height: 1.3;
}
.candidate-toolbar__dates label + label { border-left: 1px solid var(--rule); }
.candidate-toolbar__dates:focus-within { outline: 2px solid var(--focus); outline-offset: 2px; }
.candidate-toolbar__dates input {
  width: 112px;
  min-width: 0;
  min-height: 30px;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ink-700);
  font-size: var(--text-xs);
  box-shadow: none;
}
.candidate-toolbar__dates input:focus { outline: 0; box-shadow: none; background: transparent; }
.candidate-toolbar__statuses {
  grid-column: 1 / -1;
  grid-row: 2;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  min-width: 0;
  gap: 8px 12px;
}
.candidate-toolbar .chip-group { display: flex; min-width: 0; gap: 4px; flex-wrap: wrap; }
.candidate-toolbar .chip {
  min-height: 34px;
  flex: 0 0 auto;
  padding: 6px 10px;
  color: var(--ink-soft);
  border: 1px solid transparent;
  border-radius: var(--radius-sm);
  background: transparent;
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: 1.4;
  box-shadow: none;
}
.candidate-toolbar .chip:hover { color: var(--ink); background: var(--surface-hover); transform: none; }
.candidate-toolbar .chip.is-selected,
.candidate-toolbar .chip[aria-pressed="true"] {
  color: var(--paper-raised);
  border-color: var(--ink);
  background: var(--ink);
}
.candidate-toolbar .chip.is-selected:hover,
.candidate-toolbar .chip[aria-pressed="true"]:hover { color: var(--paper-raised); background: var(--ink-700); }
.candidate-toolbar__rule { width: 1px; height: 18px; flex: 0 0 1px; background: var(--rule); }
.candidate-toolbar .chip--toggle { display: inline-flex; align-items: center; gap: 7px; border-color: var(--rule); }
.candidate-toolbar .chip--toggle[aria-pressed="true"] { border-color: var(--ink); }
.candidate-toolbar #bot-replied-chip svg,
.candidate-toolbar__reset svg { width: 14px; height: 14px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.candidate-toolbar #bot-replied-count {
  min-width: 21px;
  padding: 1px 5px;
  border-radius: var(--radius-sm);
  background: var(--surface-hover);
  color: var(--ink-700);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.candidate-toolbar #bot-replied-chip[aria-pressed="true"] #bot-replied-count { background: var(--ink-700); color: var(--paper-raised); }
.candidate-toolbar__reset {
  grid-column: 3;
  grid-row: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 36px;
  padding: 6px 8px;
  color: var(--ink-soft);
  border: 0;
  border-radius: var(--radius-sm);
  background: transparent;
  font-size: var(--text-sm);
  box-shadow: none;
}
.candidate-toolbar__reset:hover { color: var(--ink); background: var(--surface-hover); transform: none; box-shadow: none; }
.candidate-toolbar :is(button, input):focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.candidate-toolbar__dates input:focus-visible { outline: 0; }
.candidate-workspace .pagination { margin: 0; padding: 12px 20px; }
.candidate-workspace .pagination__info { margin-right: auto; order: -1; font-family: var(--font-body); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.candidate-workspace .pagination button { min-height: 32px; padding: 5px 10px; border-radius: var(--radius-sm); box-shadow: none; font-size: var(--text-sm); }

/* Tables */
.table-wrap { border-radius: var(--radius); }
.ledger { color: var(--ink-700); font-size: 13px; }
.ledger thead { background: var(--surface); }
.ledger thead th {
  padding: 12px 14px;
  border-bottom: 1px solid var(--rule);
  color: var(--ink-muted);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .065em;
  text-transform: uppercase;
}
.ledger tbody td { padding: 15px 14px; border-bottom: 1px solid color-mix(in oklab, var(--rule) 72%, white); }
.ledger tbody tr { transition: background-color 180ms ease; }
.ledger tbody tr:hover { background: var(--surface); }
.ledger tbody tr:last-child td { border-bottom: 0; }
.ledger__candidate-name, .ledger strong { color: var(--ink); font-weight: 650; }
.ledger__candidate-email, .ledger__meta { color: var(--ink-muted); font-size: 12px; }
.table-wrap--scroll { border: 1px solid var(--rule); overflow: auto; }
.table-wrap--scroll .ledger thead th { position: sticky; top: 0; z-index: 1; }

/* The JD dialog owns its scrolling. Disabling scroll anchoring prevents the
   asynchronously loaded glance metrics from moving the freshly reset top. */
dialog#role-jd-dialog { overflow-anchor: none; }

/* Open roles: one explicit seven-column grid. The previous legacy rules
   stopped at column six, so Status received the action width while the
   actual action cell was unconstrained. */
.page--roles .page-header { margin-bottom: 30px; align-items: flex-end; }
.page--roles > .card { padding: 24px; }
.page--roles .roles-search-field { margin-bottom: 18px; }
.page--roles #roles-search { min-height: 46px; padding-inline: 16px; }
.page--roles .table-wrap--scroll { border-radius: 14px; }
.page--roles .ledger--roles { min-width: 1160px; table-layout: fixed; }
.page--roles .role-col--title { width: 27%; }
.page--roles .role-col--department { width: 10%; }
.page--roles .role-col--location { width: 14%; }
.page--roles .role-col--budget { width: 10%; }
.page--roles .role-col--added { width: 11%; }
.page--roles .role-col--status { width: 10%; }
.page--roles .role-col--actions { width: 18%; }
.page--roles .ledger--roles thead th {
  width: auto;
  height: 50px;
  padding: 13px 18px;
  vertical-align: middle;
}
.page--roles .ledger--roles tbody td {
  width: auto;
  height: 72px;
  padding: 15px 18px;
  vertical-align: middle;
}
.page--roles .ledger--roles th:nth-child(3),
.page--roles .ledger--roles td:nth-child(3) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.page--roles .ledger--roles th:nth-child(4),
.page--roles .ledger--roles td:nth-child(4),
.page--roles .ledger--roles th:nth-child(5),
.page--roles .ledger--roles td:nth-child(5) { white-space: nowrap; }
.page--roles .ledger--roles .role-actions-heading { text-align: right; }
.page--roles .ledger--roles td:last-child { text-align: right; }
.page--roles .ledger--roles .ledger__actions {
  width: 100%;
  justify-content: flex-end;
  gap: 6px;
}
.page--roles .ledger--roles .ledger__actions .btn--icon {
  width: 36px;
  height: 36px;
  min-height: 36px;
  border-radius: 10px;
}
.page--roles .role-action-tip { position: relative; overflow: visible; }
.page--roles .role-action-tip::before,
.page--roles .role-action-tip::after {
  position: absolute;
  z-index: 6;
  right: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateY(3px);
  transition: opacity 140ms ease, transform 140ms ease;
}
.page--roles .role-action-tip::before {
  content: attr(data-tooltip);
  bottom: calc(100% + 8px);
  width: max-content;
  max-width: 180px;
  padding: 6px 8px;
  border: 1px solid color-mix(in oklab, var(--paper-raised) 14%, transparent);
  border-radius: 7px;
  color: var(--paper-raised);
  background: var(--ink);
  box-shadow: 0 6px 16px color-mix(in oklab, var(--ink) 18%, transparent);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}
.page--roles .role-action-tip::after {
  content: "";
  bottom: calc(100% + 3px);
  width: 8px;
  height: 8px;
  margin-right: 11px;
  background: var(--ink);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.page--roles .role-action-tip:hover,
.page--roles .role-action-tip:focus-visible { z-index: 5; }
.page--roles .role-action-tip:hover::before,
.page--roles .role-action-tip:hover::after,
.page--roles .role-action-tip:focus-visible::before,
.page--roles .role-action-tip:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

/* Role requests */
.page--requests { max-width: var(--page-max); }
.page--requests .page-header { margin-bottom: 30px; }

.request-queue {
  overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--rule) 88%, white);
  border-radius: var(--radius-lg);
  background: var(--paper-raised);
  box-shadow: var(--shadow-card);
}

.request-queue__header {
  min-height: 88px;
  padding: 20px 24px 21px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--rule);
}

.request-queue__header h2 {
  margin: 0;
  color: var(--ink);
  font-size: 18px;
  font-weight: 650;
  letter-spacing: -.025em;
}

.request-queue__header p {
  max-width: 62ch;
  margin: 5px 0 0;
  color: var(--ink-soft);
  font-size: 13px;
  line-height: 1.5;
}

.request-queue__count {
  min-width: 82px;
  padding: 8px 12px;
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  border: 1px solid var(--rule);
  border-radius: 11px;
  color: var(--ink-soft);
  background: var(--surface);
  font-size: 11px;
  white-space: nowrap;
}

.request-queue__count strong {
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 16px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.request-queue .request-queue__table {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.ledger--requests {
  min-width: 820px;
  table-layout: fixed;
}

.ledger--requests thead { background: var(--surface); }
.ledger--requests thead th {
  padding: 11px 20px;
  background: var(--surface);
}

.ledger--requests tbody td {
  padding: 17px 20px;
  vertical-align: middle;
}

.ledger--requests tbody tr:hover { background: var(--surface); }
.ledger--requests .request-role-title {
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
  letter-spacing: -.01em;
}

.ledger--requests-pending th:nth-child(2),
.ledger--requests-pending td:nth-child(2) { width: 150px; }
.ledger--requests-pending th:nth-child(3),
.ledger--requests-pending td:nth-child(3) { width: 105px; }
.ledger--requests-pending th:nth-child(4),
.ledger--requests-pending td:nth-child(4) { width: 240px; }
.ledger--requests-pending th:nth-child(5),
.ledger--requests-pending td:nth-child(5) { width: 110px; }
.ledger--requests-pending th:nth-child(6),
.ledger--requests-pending td:nth-child(6) { width: 124px; }

.ledger--requests-mine th:nth-child(2),
.ledger--requests-mine td:nth-child(2) { width: 140px; }
.ledger--requests-mine th:nth-child(3),
.ledger--requests-mine td:nth-child(3) { width: 105px; }
.ledger--requests-mine th:nth-child(4),
.ledger--requests-mine td:nth-child(4) { width: 105px; }
.ledger--requests-mine th:nth-child(5),
.ledger--requests-mine td:nth-child(5) { width: 230px; }
.ledger--requests-mine th:nth-child(6),
.ledger--requests-mine td:nth-child(6) { width: 155px; }

.request-owner {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.request-owner__avatar {
  width: 30px;
  height: 30px;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: var(--ink-700);
  background: var(--surface-hover);
  font-size: 11px;
  font-weight: 700;
}

.request-owner__name {
  overflow: hidden;
  color: var(--ink-700);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.request-review-btn {
  min-height: 36px;
  padding: 7px 11px 7px 13px;
  gap: 7px;
  border: 1px solid var(--rule);
  border-radius: 10px;
  color: var(--ink-700);
  background: var(--paper-raised);
  box-shadow: var(--shadow-sm);
  font-size: 12px;
}

.request-review-btn:hover {
  color: var(--ink);
  border-color: var(--rule-mid);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.request-review-btn svg { transition: transform 180ms ease; }
.request-review-btn:hover svg { transform: translateX(2px); }

dialog#role-request-view-dialog {
  width: min(620px, calc(100vw - 32px));
  max-height: min(820px, calc(100dvh - 40px));
  padding: 0;
  border-color: color-mix(in oklab, var(--rule) 88%, white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-modal);
}

.request-dialog__header {
  padding: 23px 26px 19px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--rule);
}

.request-dialog__eyebrow {
  margin: 0 0 5px;
  color: var(--ink-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .075em;
  text-transform: uppercase;
}

#role-request-view-dialog #role-request-view-title {
  margin: 0;
  font-size: 22px;
  letter-spacing: -.03em;
}

.request-dialog__header .btn--icon {
  width: 32px;
  height: 32px;
  min-height: 32px;
  border: 0;
  color: var(--ink-soft);
  background: transparent;
  box-shadow: none;
}

.request-dialog__header .btn--icon:hover {
  color: var(--ink);
  background: var(--surface-hover);
  box-shadow: none;
}

.request-dialog__summary {
  margin: 0 26px 20px;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule);
}

.request-dialog__facts {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 28px;
}

.request-dialog__facts div { min-width: 0; }
.request-dialog__facts dt {
  margin-bottom: 5px;
  color: var(--ink-muted);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.request-dialog__facts dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 13px;
}

.request-dialog__brief {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
}

.request-dialog__brief h4 {
  margin: 0 0 8px;
  color: var(--ink-700);
  font-size: 12px;
  font-weight: 650;
}

.request-dialog__brief p {
  margin: 0;
  color: var(--ink-700);
  font-size: 13px;
  line-height: 1.65;
  white-space: pre-wrap;
}

.request-dialog__brief p.is-empty { color: var(--ink-muted); font-style: italic; }
.request-dialog__field { margin: 0 26px 20px; }
.request-dialog__field label { display: flex; align-items: baseline; gap: 7px; }
.request-dialog__optional {
  color: var(--ink-muted);
  font-size: 10px;
  font-weight: 500;
}

.request-dialog__field-help {
  margin: -2px 0 8px;
  color: var(--ink-muted);
  font-size: 11px;
  line-height: 1.5;
}

#role-request-view-dialog .template-editor__actions.request-dialog__footer {
  position: sticky;
  bottom: 0;
  margin: 24px 0 0;
  padding: 15px 26px 19px;
  border-top: 1px solid var(--rule);
  background: color-mix(in oklab, var(--paper-raised) 97%, transparent);
  backdrop-filter: blur(12px);
}

@media (max-width: 720px) {
  .page--requests .page-header { margin-bottom: 24px; }
  .request-queue { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .request-queue__header {
    min-height: 0;
    padding: 0 0 16px;
    border-bottom: 0;
  }
  .request-queue__header p { font-size: 12px; }
  .request-queue__count { min-width: 0; padding: 7px 10px; }
  .request-queue .request-queue__table { overflow: visible; }
  .ledger--requests { min-width: 0; display: block; }
  .ledger--requests thead { display: none; }
  .ledger--requests tbody {
    display: grid;
    gap: 12px;
  }
  .ledger--requests tbody tr {
    padding: 12px 16px 14px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 18px;
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    background: var(--paper-raised);
    box-shadow: var(--shadow-sm);
  }
  .ledger--requests tbody td {
    width: auto !important;
    padding: 8px 0;
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    border: 0;
  }
  .ledger--requests tbody td[data-label]::before {
    content: attr(data-label);
    color: var(--ink-muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
  }
  .ledger--requests tbody td:first-child,
  .ledger--requests-pending tbody td:nth-child(4),
  .ledger--requests-pending tbody td:nth-child(6),
  .ledger--requests-mine tbody td:nth-child(5),
  .ledger--requests-mine tbody td:nth-child(6) { grid-column: 1 / -1; }
  .ledger--requests tbody .ledger__empty {
    padding: 34px 16px;
    display: block;
    grid-column: 1 / -1;
    text-align: center;
  }
  .ledger--requests .ledger__actions,
  .ledger--requests .request-review-btn { width: 100%; }
  .ledger--requests .request-review-btn { justify-content: center; }
  dialog#role-request-view-dialog {
    width: calc(100vw - 20px);
    max-height: calc(100dvh - 20px);
  }
  .request-dialog__header { padding: 20px 20px 17px; }
  .request-dialog__summary { margin-inline: 20px; }
  .request-dialog__facts { grid-template-columns: 1fr; gap: 14px; }
  .request-dialog__field { margin-inline: 20px; }
  #role-request-view-dialog .template-editor__actions.request-dialog__footer {
    padding: 14px 20px calc(16px + env(safe-area-inset-bottom));
    flex-wrap: wrap;
  }
  #role-request-view-dialog .request-dialog__footer #role-request-view-close-btn { display: none; }
}

.stamp {
  min-height: 25px;
  padding: 4px 9px;
  border-radius: var(--radius-pill);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}
.pagination { padding-top: 20px; }
.pagination__info { color: var(--ink-muted); font-size: 11px; }

/* Settings */
.page.page--settings {
  /* The navigation already occupies normal flow; a full-viewport minimum
     on main adds scrolling even when the selected panel fits the screen. */
  min-height: 0;
  padding-top: var(--space-lg);
  padding-bottom: var(--space-xl);
}
.page--settings > .page-header { margin-bottom: var(--space-lg); }
.settings-layout { grid-template-columns: 210px minmax(0, 1fr); gap: var(--space-lg); max-width: none; }
.page--settings .settings-panels {
  /* One shared gutter: don't stack the legacy panel inset on the grid gap. */
  padding: 0;
  max-width: none;
}
.settings-nav {
  position: sticky;
  top: var(--space-lg);
  min-height: 0;
  align-self: start;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 5px;
  padding: 8px;
  border: 1px solid color-mix(in oklab, var(--rule) 82%, white);
  border-radius: 16px;
  background: color-mix(in oklab, var(--paper-raised) 72%, transparent);
  box-shadow: var(--shadow-sm);
}
.settings-nav__item {
  min-height: 42px;
  justify-content: flex-start;
  padding: 0 12px;
  color: var(--ink-soft);
  border: 0;
  border-radius: 10px;
  background: transparent;
  font-size: 13px;
  font-weight: 550;
  box-shadow: none;
}
.settings-nav__item:hover { color: var(--ink); background: var(--surface-hover); }
.settings-nav__item.is-active { color: white; background: var(--ink); font-weight: 650; box-shadow: 0 6px 15px color-mix(in oklab, var(--ink) 14%, transparent); }
.page--settings .section-label:not(:first-child) { margin-top: var(--space-lg); }
.page--settings .card { padding: 26px; box-shadow: var(--shadow-card); }
.settings-grid { gap: 0 18px; }
.file-rows { border-top: 1px solid var(--rule); }
.file-row { min-height: 62px; padding: 12px 0; border-bottom: 1px solid var(--rule); background: transparent; }
.file-row__name { color: var(--ink); font-size: 13px; font-weight: 600; }
.template-row { min-height: 70px; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.template-row__name { color: var(--ink); font-size: 13px; font-weight: 650; }
.template-row__excerpt { color: var(--ink-muted); font-family: var(--font-mono); font-size: 11px; }
.card__save-row { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--rule); }
.page--settings .card__save-row:not(:has(> button:not([hidden]))) { display: none; }

/* Template rows contain two controls, but the row itself is not clickable.
   A full-width hover fill implied the opposite and exposed old negative
   margins/rounded separators. Keep the records flat and let the actual
   controls carry interaction feedback. */
.page--settings .email-automation-card { padding-bottom: 18px; }

.page--settings .email-automation-card > .field--checkbox {
  margin-bottom: 4px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--rule);
}

.page--settings .email-automation-card .template-row {
  grid-template-columns: minmax(0, 1fr) 44px 40px;
  min-height: 72px;
  margin: 0;
  padding: 13px 4px;
  border: 0;
  border-bottom: 1px solid var(--rule);
  border-radius: 0;
  background: transparent;
  transition: none;
}

.page--settings .email-automation-card .template-row:hover {
  background: transparent;
}

.page--settings .email-automation-card .template-row:has(+ textarea[hidden]) {
  border-bottom: 0;
}

.page--settings .email-automation-card .template-row__toggle label { cursor: pointer; }

.page--settings .email-automation-card .template-row > .btn--icon {
  width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  border-color: transparent;
  border-radius: 10px;
  color: var(--ink-muted);
  background: transparent;
  box-shadow: none;
  opacity: .72;
  transition: opacity 140ms ease, color 140ms ease, background-color 140ms ease,
    border-color 140ms ease, transform 100ms ease-out;
}

.page--settings .email-automation-card .template-row:focus-within > .btn--icon {
  border-color: var(--rule);
  color: var(--ink);
  background: var(--surface);
  opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
  .page--settings .email-automation-card .template-row:hover > .btn--icon {
    border-color: var(--rule);
    color: var(--ink);
    background: var(--surface);
    opacity: 1;
  }
}

/* A template is a compact editable record, not a card inside a card. The
   rows sit flush against one shared container and the save footer only
   exists while its action is actually available. */
.page--settings .template-list-card {
  padding: 0;
  overflow: hidden;
  border-color: var(--rule);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
}

.page--settings .template-list-card .template-row {
  grid-template-columns: minmax(0, 1fr) 40px;
  gap: 18px;
  min-height: 78px;
  margin: 0;
  padding: 15px 18px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.page--settings .template-list-card .template-row + .template-row {
  border-top: 1px solid var(--rule);
}

.page--settings .template-list-card .template-row:hover {
  background: transparent;
}

.page--settings .template-list-card .template-row__info { gap: 4px; }

.page--settings .template-list-card .template-row__name {
  color: var(--ink-800);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -.01em;
}

.page--settings .template-list-card .template-row__excerpt {
  color: var(--ink-muted);
  font-size: 11px;
  line-height: 1.5;
}

.page--settings .template-list-card .template-row > .btn--icon {
  width: 40px;
  height: 40px;
  min-height: 40px;
  padding: 0;
  justify-self: end;
  border-color: transparent;
  border-radius: 11px;
  color: var(--ink-soft);
  background: transparent;
  box-shadow: none;
}

.page--settings .template-list-card .template-row > .btn--icon:hover {
  border-color: var(--rule);
  color: var(--ink);
  background: var(--paper-raised);
  box-shadow: var(--shadow-sm);
}

@media (hover: hover) and (pointer: fine) {
  .page--settings .template-list-card .template-row:hover > .btn--icon {
    border-color: var(--rule);
    color: var(--ink);
    background: var(--surface);
    opacity: 1;
  }
}

.page--settings .template-list-card .card__save-row {
  margin: 0;
  padding: 14px 18px;
  border-top: 1px solid var(--rule);
  background: var(--surface);
}

.page--settings .template-list-card .card__save-row:not(:has(> button:not([hidden]))) {
  display: none;
}

.switch, .field--checkbox input[type="checkbox"] { accent-color: var(--ink); }

/* Verification */
.page--bgv { max-width: var(--page-max); }
.bgv-head { padding: 0; }
.bgv-turn { margin: 0 0 16px; }
.bgv-turn__what { color: var(--ink); font-family: var(--font-display); font-size: 15px; font-weight: 650; }
.bgv-turn__rest { color: var(--ink-soft); font-size: 13px; }
.page--bgv .bgv-head { align-items: center; margin-bottom: 18px; }
.page--bgv .bgv-head h1 { font-size: clamp(28px, 2vw, 34px); }
.page--bgv .bgv-head__sub { margin-top: 5px; font-size: 14px; }
.page--bgv #bgv-add-manual { min-height: 42px; padding: 8px 16px; }
.page--bgv .bgv-turn {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 16px;
}
.page--bgv .bgv-turn p { margin: 0; }
.bgv-ready {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 18px;
  margin-bottom: 20px;
  padding: 14px 16px;
  align-items: center;
  border: 1px solid var(--ink);
}
.bgv-ready__header h2, .bgv-workspace__header h2 { font-size: 18px; }
.page--bgv .bgv-ready__header { align-items: center; }
.page--bgv .bgv-ready__header h2 { font-size: 14px; letter-spacing: -.02em; }
.page--bgv .bgv-ready .file-rows { margin: 0; gap: 6px; }
.page--bgv .bgv-ready .file-row {
  min-height: 54px;
  padding: 8px 10px 8px 12px;
  border-color: var(--rule);
  border-radius: 10px;
  background: var(--surface);
}
.page--bgv .bgv-ready .file-row__name { font-size: 13px; font-weight: 650; }
.page--bgv .bgv-ready .bgv-block__meta { margin-top: 2px; font-size: 11px; }
.page--bgv .bgv-ready .file-row button { min-height: 36px; }
.bgv-workspace { overflow: hidden; }
.bgv-workspace__header { min-height: 70px; margin: 0; padding: 22px 24px; border-bottom: 1px solid var(--rule); }
.page--bgv .bgv-filters { margin: 20px 20px 10px; padding: 0; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--surface); }
.page--bgv .bgv-filters .filters__fields { grid-template-columns: minmax(240px, 1.65fr) minmax(170px, .7fr) minmax(170px, .7fr) auto; gap: 0; }
.page--bgv .bgv-filters .field { padding: 12px 14px; border-right: 1px solid var(--rule); }
.page--bgv .bgv-filters input, .page--bgv .bgv-filters select { min-height: 34px; padding: 0; border: 0; background: transparent; box-shadow: none; }
.page--bgv .bgv-filters input:focus-visible, .page--bgv .bgv-filters select:focus-visible { outline: 0; border: 0; box-shadow: none; }
.page--bgv .bgv-filters__clear {
  min-width: 142px;
  min-height: 0;
  margin: 0;
  padding: 0 18px;
  display: inline-flex;
  align-self: stretch;
  align-items: center;
  justify-content: center;
  gap: 7px;
  border: 0;
  border-radius: 0;
  color: var(--ink-soft);
  background: var(--paper-raised);
  box-shadow: none;
  font-size: 13px;
  font-weight: 650;
}
.page--bgv .bgv-filters__clear svg {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.page--bgv .bgv-filters__clear:hover {
  color: var(--ink);
  background: var(--surface-hover);
  box-shadow: none;
  transform: none;
}
.page--bgv .bgv-filters__clear:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: -3px;
}
.bgv-tabs { padding: 0 22px; gap: 22px; border-bottom: 1px solid var(--rule); }
.bgv-tab {
  min-height: 48px;
  padding: 0 1px;
  color: var(--ink-soft);
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  font-size: 13px;
  box-shadow: none;
}
.bgv-tab:hover { color: var(--ink); background: transparent; box-shadow: none; }
.bgv-tab.is-active { color: var(--ink); border-bottom-color: var(--accent); background: transparent; }
.bgv-tab__count { color: var(--ink-soft); background: var(--surface); }
.bgv-ledger-wrap { padding: 0 20px 12px; }
.page--bgv #bgv-ledger thead th { top: 0; background: var(--surface); }
.bgv-empty { background: var(--surface); }

/* The declaration is the row's primary document action. Keep it compact,
   align it to the table edge, and avoid composing the generic outline/icon
   classes—their overlapping borders produced the heavy double-ring control
   this replaces. */
.page--bgv .bgv-ledger__col--decision { width: 132px; }
.page--bgv .bgv-ledger__col--action { width: 104px; }
.page--bgv .bgv-ledger__col--case { width: 144px; }
.page--bgv .bgv-ledger__col--candidate { width: 20%; }
.page--bgv .bgv-ledger__col--role { width: 16%; }
.page--bgv .bgv-ledger__col--stage { width: 176px; }
.page--bgv .bgv-ledger__col--next { width: auto; }
.page--bgv #bgv-ledger .bgv-ledger__action-cell {
  width: 104px;
  min-width: 104px;
  max-width: 104px;
  padding-right: 14px;
  padding-left: 14px;
  overflow: visible;
  border-left: 0;
  text-align: right;
  white-space: nowrap;
}
.page--bgv #bgv-ledger .bgv-ledger__actions {
  position: relative;
  min-width: 0;
  width: 100%;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
}
.page--bgv #bgv-ledger .bgv-reminder-status {
  color: inherit;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.bgv-declaration-action {
  position: relative;
  width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  display: inline-grid;
  flex: 0 0 36px;
  place-items: center;
  overflow: visible;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  color: var(--ink-soft);
  background: var(--paper-raised);
  box-shadow: none;
  text-decoration: none;
  transition: transform 140ms ease, background-color 160ms ease,
    border-color 160ms ease, box-shadow 160ms ease;
}
.bgv-declaration-action svg {
  width: 18px;
  height: 18px;
  pointer-events: none;
}
.bgv-declaration-action:hover {
  color: var(--ink);
  border-color: var(--rule-strong);
  background: var(--surface-hover);
  box-shadow: none;
  transform: none;
}
.bgv-declaration-action:active {
  box-shadow: none;
  transform: none;
}
.bgv-declaration-action:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
.bgv-declaration-action::before,
.bgv-declaration-action::after {
  position: absolute;
  z-index: 6;
  right: 0;
  pointer-events: none;
  opacity: 0;
  transform: translateY(3px);
  transition: opacity 140ms ease, transform 140ms ease;
}
.bgv-declaration-action::before {
  content: attr(data-tooltip);
  bottom: calc(100% + 8px);
  width: max-content;
  max-width: 190px;
  padding: 6px 8px;
  border: 1px solid color-mix(in oklab, var(--paper-raised) 14%, transparent);
  border-radius: 7px;
  color: var(--paper-raised);
  background: var(--ink);
  box-shadow: 0 6px 16px color-mix(in oklab, var(--ink) 18%, transparent);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
}
.bgv-declaration-action::after {
  content: "";
  bottom: calc(100% + 3px);
  width: 8px;
  height: 8px;
  margin-right: 11px;
  background: var(--ink);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.bgv-declaration-action:hover::before,
.bgv-declaration-action:hover::after,
.bgv-declaration-action:focus-visible::before,
.bgv-declaration-action:focus-visible::after {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .bgv-declaration-action,
  .bgv-declaration-action::before,
  .bgv-declaration-action::after { transition: none; }
}

@media (max-width: 720px) {
  .page--bgv #bgv-ledger .bgv-ledger__action-cell {
    width: 100%;
    min-width: 0;
    max-width: none;
    padding-right: 0;
    padding-left: 0;
    border-left: 0;
    text-align: left;
    white-space: normal;
  }
  .page--bgv #bgv-ledger .bgv-ledger__actions {
    align-items: center;
    justify-content: flex-start;
  }
  .page--bgv #bgv-ledger .bgv-reminder-status {
    max-width: none;
    flex: 0 1 auto;
    align-items: flex-start;
    text-align: left;
  }
}

/* Dialogs, drawers, menus and toast */
dialog:not([open]) { display: none !important; }

dialog {
  padding: 26px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  color: var(--ink);
  background: var(--paper-raised);
  box-shadow: var(--shadow-modal);
}
dialog::backdrop { background: color-mix(in oklab, var(--ink) 28%, transparent); backdrop-filter: blur(3px); }
dialog h3 { font-size: 19px; }
.drawer__header { padding: 22px 24px; border-bottom: 1px solid var(--rule); background: var(--paper-raised); }
.drawer__eyebrow { color: var(--ink-muted); font-family: var(--font-mono); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.drawer__name { font-size: 24px; letter-spacing: -.035em; }
.drawer__role { color: var(--ink-soft); }
.drawer__body { background: var(--surface); }
.drawer__section { padding: 22px 24px; border-bottom: 1px solid var(--rule); background: var(--paper-raised); }
.drawer__section-title { margin-bottom: 14px; color: var(--ink); font-family: var(--font-display); font-size: 15px; font-weight: 650; }
.drawer__row { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.drawer__row-label { color: var(--ink-muted); font-size: 12px; }
.drawer__row-value { color: var(--ink); font-size: 13px; }
.drawer__footer { padding: 16px 24px; border-top: 1px solid var(--rule); background: var(--paper-raised); }
.template-editor__actions, .compose-email__footer, .users-dialog__footer, .bgv-manual-dialog__footer { gap: 8px; }
.compose-email__cc-suggestions, .checkbox-list, .recruiter-select__dropdown { border-color: var(--rule); background: var(--paper-raised); box-shadow: var(--shadow-pop); }
.toast {
  min-width: min(260px, calc(100vw - 32px));
  max-width: min(400px, calc(100vw - 32px));
  padding: 11px 14px 13px;
  border: 1px solid color-mix(in oklab, var(--ink) 84%, white);
  border-radius: var(--radius);
  color: var(--paper-raised);
  background: var(--ink);
  box-shadow: var(--shadow-pop);
  font-size: 13px;
  font-weight: 600;
}
.toast__icon {
  width: 20px;
  height: 20px;
  color: var(--paper-raised);
  background: color-mix(in oklab, var(--paper-raised) 14%, transparent);
  font-size: 11px;
}
.toast__msg {
  color: inherit;
  overflow-wrap: anywhere;
}
.toast__progress {
  background: var(--paper-raised);
  opacity: .24;
}
.toast[data-variant="error"] .toast__icon {
  color: oklch(88% 0.07 25);
  background: color-mix(in oklab, var(--brick-ink) 34%, transparent);
}

/* --------------------------------------------------------------------------
   Dense work surfaces: toggles, candidate ledger, and detail panels
   -------------------------------------------------------------------------- */

/* A switch should read as one binary control, not a miniature ON/OFF picker. */
.page--settings .switch,
.page--settings #auto_reply_enabled + .switch {
  width: 44px;
  height: 26px;
  overflow: visible;
  border: 1px solid var(--rule-mid);
  border-radius: var(--radius-pill);
  background: var(--surface);
  box-shadow: inset 0 1px 2px color-mix(in oklab, var(--ink) 6%, transparent);
}
.page--settings .switch::before { content: none; }
.page--settings .switch::after {
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--paper-raised);
  box-shadow: 0 1px 3px color-mix(in oklab, var(--ink) 22%, transparent);
  transform: translateX(0);
}
.page--settings input[type="checkbox"]:checked + .switch,
.page--settings #auto_reply_enabled:checked + .switch {
  border-color: var(--ink);
  background: var(--ink);
}
.page--settings input[type="checkbox"]:checked + .switch::after,
.page--settings #auto_reply_enabled:checked + .switch::after {
  background: white;
  transform: translateX(18px);
}
.page--settings input[type="checkbox"]:focus-visible + .switch {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}
.template-row__toggle { justify-self: end; }

/* Overview ledger: fixed, intentional columns instead of content fighting
   for width. Editable states stay obvious without becoming giant outlines. */
.card > .table-wrap:has(.ledger--candidates) {
  margin: 0;
  overflow-x: auto;
  border: 1px solid var(--rule);
  border-inline: 0;
  border-radius: 0;
  background: var(--paper-raised);
}
.ledger--candidates {
  min-width: 1348px;
  table-layout: fixed;
}
.ledger--candidates th:nth-child(1), .ledger--candidates td:nth-child(1) { width: 3%; }
.ledger--candidates th:nth-child(2), .ledger--candidates td:nth-child(2) { width: 18%; }
.ledger--candidates th:nth-child(3), .ledger--candidates td:nth-child(3) { width: 9%; }
.ledger--candidates th:nth-child(4), .ledger--candidates td:nth-child(4) { width: 14%; }
.ledger--candidates th:nth-child(5), .ledger--candidates td:nth-child(5) { width: 5%; }
.ledger--candidates th:nth-child(6), .ledger--candidates td:nth-child(6) { width: 7%; }
.ledger--candidates th:nth-child(7), .ledger--candidates td:nth-child(7) { width: 15%; }
.ledger--candidates th:nth-child(8), .ledger--candidates td:nth-child(8) { width: 12%; }
.ledger--candidates th:nth-child(9), .ledger--candidates td:nth-child(9) { width: 10%; }
.ledger--candidates th:nth-child(10), .ledger--candidates td:nth-child(10) { width: 7%; }
.ledger--candidates thead th {
  position: static;
  height: 42px;
  padding: 7px 12px;
  background: var(--surface);
  font-size: var(--text-sm);
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
}
.ledger--candidates tbody td {
  padding: 12px;
  vertical-align: middle;
  line-height: 1.42;
}
.ledger--candidates .candidate-actions-heading,
.ledger--candidates td:nth-child(10) {
  padding-left: 8px;
  padding-right: 8px;
  text-align: center;
}
.ledger--candidates .ledger__candidate-name {
  display: block;
  overflow: hidden;
  font-size: var(--text-md);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ledger--candidates .ledger__candidate-email,
.ledger--candidates .ledger__source {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ledger--candidates .ledger__bot-mail {
  display: flex;
  width: fit-content;
  max-width: 100%;
  margin-top: 6px;
  align-items: center;
  gap: 6px 8px;
  flex-wrap: wrap;
  color: var(--ink-800);
  font-size: var(--text-xs);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.25;
  text-decoration: none;
  white-space: nowrap;
}
.ledger--candidates .ledger__bot-mail-badge {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 5px;
  min-height: 26px;
  padding: 4px 8px;
  border-radius: var(--radius-sm);
  background: var(--ink-800);
  color: var(--paper-raised);
  font-size: var(--text-sm);
  font-weight: 650;
}
.ledger--candidates .ledger__bot-mail svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}
.ledger--candidates .ledger__bot-mail-label {
  flex: 0 0 auto;
}
.ledger--candidates .ledger__bot-mail time {
  flex: 0 0 auto;
  color: var(--ink-600);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
.ledger--candidates a.ledger__bot-mail:focus-visible {
  border-radius: var(--radius-sm);
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}

/* Column filters use the browser's top layer to escape the table's scroll
   container. One panel serves every column, including the mobile toolbar. */
.candidate-filter-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 0 20px 12px; }
.candidate-filter-bar:has(.candidate-active-filters:empty) { display: none; }
#candidate-filter-results { margin-left: auto; color: var(--ink-soft); font-size: var(--text-xs); font-variant-numeric: tabular-nums; white-space: nowrap; }
.candidate-active-filters { display: flex; flex-wrap: wrap; gap: 6px; }
.candidate-mobile-filters { display: none; }
.column-filter-trigger {
  display: inline-flex; justify-content: space-between; width: 100%; gap: 5px;
  min-height: 28px; padding: 3px 0; border: 0; border-radius: 4px;
  background: transparent; color: var(--ink-600); box-shadow: none;
  font: inherit; letter-spacing: inherit; text-transform: inherit;
}
.column-filter-trigger svg { width: 13px; height: 13px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.4; }
.column-filter-trigger:hover, .column-filter-trigger[aria-expanded="true"] {
  background: transparent; color: var(--ink); box-shadow: none; transform: none; filter: none;
}
.column-filter-trigger.is-filtered { color: var(--ink); }
.column-filter-trigger.is-filtered svg { fill: currentColor; }
.column-filter-trigger:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.column-filter-tag {
  min-height: 27px; max-width: 300px; padding: 3px 8px; border: 1px solid var(--rule-mid);
  border-radius: 5px; background: var(--surface); color: var(--ink-700); box-shadow: none;
  font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.column-filter-tag:hover { background: var(--surface-hover); color: var(--ink); transform: none; box-shadow: none; }
.column-filter {
  position: fixed; inset: auto; z-index: 80; margin: 0; padding: 14px;
  width: min(340px, calc(100vw - 24px)); max-height: min(480px, calc(100dvh - 24px));
  display: flex; flex-direction: column; gap: 10px; overflow: auto;
  border: 1px solid var(--rule-mid); border-radius: 10px;
  background: var(--paper-raised); color: var(--ink); box-shadow: var(--shadow-pop);
  font-family: var(--font-body); font-size: 13px;
  transition-property: none;
}
.column-filter::backdrop { background: transparent; }
.column-filter__heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.column-filter__hint { margin: 0; font-size: 11px; color: var(--ink-soft); line-height: 1.5; }
.column-filter .column-filter__search { width: 100%; min-height: 36px; margin: 0; padding: 7px 10px; font-size: 13px; border-radius: 6px; }
.column-filter__tools { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--rule); padding-bottom: 8px; }
.column-filter__tools label { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 12px; font-weight: 600; cursor: pointer; }
.column-filter input[type="checkbox"] { width: 16px; height: 16px; min-height: 16px; padding: 0; margin: 0; flex-shrink: 0; accent-color: var(--ink); }
.column-filter__values { min-height: 40px; overflow-y: auto; overscroll-behavior: contain; flex: 1 1 auto; }
.column-filter__value { display: flex; align-items: center; gap: 8px; padding: 8px 5px; margin: 0; border-radius: 4px; color: var(--ink-700); font-size: 12px; font-weight: 500; cursor: pointer; }
.column-filter__value > span:not(.column-filter__value-count) { overflow-wrap: anywhere; min-width: 0; }
.column-filter__value:hover { background: var(--surface-hover); }
.column-filter__value-count { margin-left: auto; padding-left: 8px; font-variant-numeric: tabular-nums; color: var(--ink-soft); }
.column-filter__empty { padding: 10px 5px; margin: 0; color: var(--ink-soft); font-size: 12px; }
.column-filter__footer { display: flex; gap: 6px; align-items: center; padding-top: 10px; border-top: 1px solid var(--rule); }
.column-filter__count { margin-right: auto; font-size: 11px; font-variant-numeric: tabular-nums; color: var(--ink-soft); }
.column-filter button { min-height: 30px; padding: 5px 10px; border-radius: 5px; font-size: 12px; box-shadow: none; transform: none; transition: none; }
.column-filter .column-filter__close, .column-filter .column-filter__clear, .column-filter .column-filter__cancel { color: var(--ink-700); background: transparent; border-color: transparent; }
.column-filter .column-filter__close { font-size: 20px; padding: 0 6px; }
.column-filter .column-filter__cancel { border-color: var(--rule-mid); }
.column-filter .column-filter__close:hover, .column-filter .column-filter__clear:hover, .column-filter .column-filter__cancel:hover { background: var(--surface-hover); color: var(--ink); }
.column-filter .column-filter__apply { background: var(--ink); color: white; }
.column-filter .column-filter__apply:hover { background: var(--ink-700); color: white; }
.column-filter :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 720px) {
  .candidate-filter-bar:has(.candidate-active-filters:empty) { display: flex; }
  .candidate-mobile-filters { display: flex; gap: 6px; overflow-x: auto; width: 100%; padding: 3px; }
  .candidate-mobile-filters .column-filter-trigger { width: auto; flex-shrink: 0; font-size: 12px; padding: 6px 9px; border: 1px solid var(--rule); }
}
@media (hover: hover) and (pointer: fine) {
  .ledger--candidates a.ledger__bot-mail:hover {
    color: var(--ink);
  }
  .ledger--candidates a.ledger__bot-mail:hover .ledger__bot-mail-badge {
    background: var(--ink);
  }
}
.ledger--candidates select.stamp-select {
  width: 100%;
  min-height: 32px;
  padding: 6px 27px 6px 10px;
  border: 1px solid transparent;
  border-radius: 9px;
  background-position: right 9px center;
  background-repeat: no-repeat;
  background-size: 10px 6px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b7280' stroke-width='1.4' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.3;
  box-shadow: none;
}
.ledger--candidates select.stamp-select:hover {
  border-color: color-mix(in oklab, currentColor 25%, var(--rule));
  filter: none;
}
.ledger--candidates select.stamp-select:focus-visible {
  border-color: var(--focus);
  outline: 2px solid color-mix(in oklab, var(--focus) 20%, transparent);
  outline-offset: 1px;
}
.ledger--candidates td:nth-child(9) {
  font-family: var(--font-mono);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ledger--candidates tbody tr.is-awaiting-documents {
  background: color-mix(in oklab, var(--green-bg) 52%, var(--paper-raised));
  background: color-mix(in oklab, var(--green-border) 22%, transparent);
}
.ledger--candidates tbody tr.is-awaiting-documents:hover {
  background: color-mix(in oklab, var(--green-bg) 70%, var(--paper-raised));
}
/* Resting fill and hairline, not transparent. This glyph is the only way
   into every per-candidate action, and hover-only affordance means no
   affordance at all on a touch screen. Same quiet chip as .btn--text so
   the row's two controls read as one family. */
/* Reminders run themselves, so the ledger reports them instead of
   offering a button. Quiet on purpose: it is a fact about the case, not
   something to act on, and it sits in the column that used to hold a
   control. */
.bgv-reminder-status {
  color: var(--ink-muted);
  font-size: 12px;
  /* Allowed to wrap rather than run past the column's edge — nowrap
     clipped it mid-word at this width. */
  text-align: right;
  line-height: 1.3;
}

.ledger--candidates .row-menu-trigger {
  width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  color: var(--ink-soft);
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--paper-raised);
  box-shadow: none;
  opacity: 1;
  transition: transform 140ms ease, color 160ms ease,
    background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}
.ledger--candidates .row-menu-trigger svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
}
.ledger--candidates .ledger__actions {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  white-space: nowrap;
}
.candidate-row-resume {
  width: 32px;
  height: 32px;
  min-height: 32px;
  padding: 0;
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  color: var(--ink-700);
  background: var(--paper-raised);
  box-shadow: none;
  transition: transform 140ms ease, background-color 160ms ease,
    border-color 160ms ease, box-shadow 160ms ease;
}
.candidate-row-resume svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.candidate-row-resume:hover,
.candidate-row-resume:focus-visible {
  color: var(--ink);
  border-color: var(--rule-mid);
  background: var(--surface-hover);
  box-shadow: none;
  transform: none;
}
.candidate-row-resume:active { transform: translateY(0); box-shadow: none; }
.candidate-row-resume:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
.ledger--candidates tbody tr:hover .row-menu-trigger,
.ledger--candidates .row-menu-trigger:focus-visible {
  color: var(--ink);
  border-color: var(--rule-mid);
  background: var(--surface-hover);
  box-shadow: none;
  opacity: 1;
}
.ledger--candidates .row-menu-trigger:hover { transform: none; }
.ledger--candidates .row-menu-trigger:active { transform: translateY(0); box-shadow: none; }
.ledger--candidates .row-menu-trigger[aria-expanded="true"] {
  color: var(--paper-raised);
  border-color: var(--ink);
  background: var(--ink);
  box-shadow: 0 3px 8px color-mix(in oklab, var(--ink) 16%, transparent);
}
.ledger--candidates .row-menu-trigger:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}

/* Table row actions: one menu, one visual language. Legacy badge and
   global button rules gave three items raised white cards while the email
   link stayed bare. Flatten every action into an aligned menu row instead. */
.row-menu {
  width: 218px;
  min-width: 218px;
  max-width: calc(100vw - 16px);
  box-sizing: border-box;
  gap: 1px;
  padding: 5px;
  border: 1px solid var(--rule);
  border-radius: 12px;
  background: var(--paper-raised);
  box-shadow: 0 12px 30px color-mix(in oklab, var(--ink) 14%, transparent),
    0 2px 7px color-mix(in oklab, var(--ink) 6%, transparent);
}
.row-menu .row-menu__item,
.row-menu .note-badge,
.row-menu .ai-badge,
.row-menu .compose-badge,
.row-menu .ledger__icon-link {
  width: 100%;
  min-height: 38px;
  height: 38px;
  margin: 0;
  padding: 0 10px;
  justify-content: flex-start;
  gap: 10px;
  border: 0;
  border-radius: var(--radius-sm);
  color: var(--ink-700);
  background: transparent;
  box-shadow: none;
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  text-align: left;
  text-decoration: none;
  transform: none;
  transition: color 140ms ease, background-color 140ms ease;
}
.row-menu .note-badge.has-note {
  color: var(--ink-700);
  background: transparent;
}
.row-menu .row-menu__item:hover,
.row-menu .row-menu__item:focus-visible,
.row-menu .note-badge:hover,
.row-menu .note-badge:focus-visible,
.row-menu .note-badge.has-note:hover,
.row-menu .note-badge.has-note:focus-visible,
.row-menu .ai-badge:hover,
.row-menu .ai-badge:focus-visible,
.row-menu .compose-badge:hover,
.row-menu .compose-badge:focus-visible,
.row-menu .ledger__icon-link:hover,
.row-menu .ledger__icon-link:focus-visible {
  color: var(--ink);
  background: var(--surface);
  box-shadow: none;
  text-decoration: none;
  transform: none;
}
.row-menu .note-badge:active,
.row-menu .ai-badge:active,
.row-menu .compose-badge:active,
.row-menu .ledger__icon-link:active {
  background: var(--rule);
  transform: scale(.985);
}
.row-menu .row-menu__item:active { background: var(--rule); transform: none; }
.row-menu .row-menu__item:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.row-menu .row-menu__glyph {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.row-menu .compose-badge .row-menu__glyph { stroke-width: 1.7; }

@media (prefers-reduced-motion: reduce) {
  .row-menu .row-menu__item,
  .row-menu .note-badge,
  .row-menu .ai-badge,
  .row-menu .compose-badge,
  .row-menu .ledger__icon-link { transition: none; }
}

/* Candidate detail: one composed sheet with clear rhythm, not stacked bands. */
dialog#candidate-drawer {
  width: min(520px, 100vw);
  overflow: hidden;
  background: var(--paper-raised);
  border-left-color: var(--rule);
}
dialog#candidate-drawer > .drawer__header {
  min-height: 126px;
  padding: 28px 30px 24px;
  background: var(--paper-raised);
}
dialog#candidate-drawer .drawer__eyebrow { margin-bottom: 7px; }
dialog#candidate-drawer .drawer__name {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -.04em;
}
dialog#candidate-drawer .drawer__role { margin-top: 5px; font-size: 14px; }
dialog#candidate-drawer #candidate-drawer-close,
dialog#bgv-drawer #bgv-drawer-close {
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 12px;
  color: var(--ink-600);
  background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--rule);
}
dialog#candidate-drawer #candidate-drawer-close:hover,
dialog#bgv-drawer #bgv-drawer-close:hover {
  color: var(--ink);
  background: var(--surface-hover);
  box-shadow: inset 0 0 0 1px var(--rule-mid);
}
dialog#candidate-drawer #candidate-drawer-close:focus-visible,
dialog#bgv-drawer #bgv-drawer-close:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
  box-shadow: none;
}
dialog#candidate-drawer > .drawer__body {
  padding: 0 30px;
  background: var(--paper-raised);
}
dialog#candidate-drawer .drawer__section {
  margin: 0;
  padding: 24px 0 26px;
  border: 0;
  border-bottom: 1px solid var(--rule);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
dialog#candidate-drawer .drawer__section:first-child { padding-top: 24px; }
dialog#candidate-drawer .drawer__section-title {
  margin-bottom: 14px;
  color: var(--ink-700);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .01em;
  text-transform: none;
}
dialog#candidate-drawer .drawer__match {
  gap: 9px;
  padding: 0;
  border: 0;
  background: transparent;
}
dialog#candidate-drawer .drawer__match-value { font-size: 30px; font-weight: 600; }
dialog#candidate-drawer .drawer__match-label { font-size: 11px; }
dialog#candidate-drawer .drawer__row {
  min-height: 44px;
  padding: 10px 0;
  align-items: center;
  border-bottom: 1px solid color-mix(in oklab, var(--rule) 72%, white);
}
dialog#candidate-drawer .pipeline-grid {
  grid-template-columns: 132px minmax(0, 1fr);
  row-gap: 14px;
  column-gap: 18px;
}
dialog#candidate-drawer .pipeline-grid__label { padding-top: 11px; font-size: 12px; }
dialog#candidate-drawer input.pipeline-input,
dialog#candidate-drawer select.pipeline-input {
  height: 42px;
  border-color: var(--rule);
  background-color: var(--surface);
  font-size: 13px;
}
dialog#candidate-drawer .pipeline-stepper { margin: 2px 0 20px; }
dialog#candidate-drawer .pipeline-stepper__label { font-size: 9px; letter-spacing: .035em; }
dialog#candidate-drawer .drawer__assessment {
  margin: 0;
  padding: 14px 16px;
  border-radius: var(--radius);
  background: color-mix(in oklab, var(--accent) 5%, var(--surface));
  border: 1px solid color-mix(in oklab, var(--accent) 55%, var(--rule));
  font-size: 13px;
  line-height: 1.65;
}
dialog#candidate-drawer .drawer__note { line-height: 1.55; }
dialog#candidate-drawer > .drawer__footer {
  padding: 14px 24px calc(14px + env(safe-area-inset-bottom));
  background: color-mix(in oklab, var(--paper-raised) 96%, transparent);
}

/* Verification cases use the same focused overlay language. The queue keeps
   its full width instead of collapsing into six cramped columns. */
body.bgv-panel-open .page--bgv {
  max-width: var(--page-max);
  margin-inline: auto;
  padding-right: var(--page-gutter);
}
dialog#bgv-drawer.bgv-panel {
  top: 0;
  width: min(640px, 100vw);
  height: 100dvh;
  overflow: hidden;
  border-left: 1px solid var(--rule);
  background: var(--paper-raised);
  box-shadow: var(--shadow-modal);
}
dialog#bgv-drawer.bgv-panel::backdrop {
  background: color-mix(in oklab, var(--ink) 34%, transparent);
  backdrop-filter: blur(3px);
}
dialog#bgv-drawer > .drawer__header {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  min-height: 118px;
  padding: 27px 30px 24px;
  background: color-mix(in oklab, var(--paper-raised) 97%, transparent);
}
dialog#bgv-drawer > .drawer__header > div { min-width: 0; }
dialog#bgv-drawer .drawer__name { font-size: 30px; }
dialog#bgv-drawer > .drawer__body {
  min-height: 0;
  flex: 1 1 auto;
  padding-inline: 30px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scroll-padding-block: 20px;
}
dialog#bgv-drawer > .bgv-drawer__footer {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
  min-height: 64px;
  padding: 11px 30px calc(11px + env(safe-area-inset-bottom));
  align-items: center;
  background: color-mix(in oklab, var(--paper-raised) 97%, transparent);
}
dialog#bgv-drawer #bgv-drawer-close { flex: 0 0 40px; }
dialog#bgv-drawer .drawer__section { padding-block: 24px 26px; }
dialog#bgv-drawer .bgv-review-brief {
  padding: 16px 18px;
  background: var(--surface);
  border: 1px solid var(--accent);
}
dialog#bgv-drawer .bgv-review-counts { margin-top: 16px; }
dialog#bgv-drawer .bgv-review-group { margin-top: 22px; }
dialog#bgv-drawer .bgv-review-group h3 {
  margin: 0 0 9px;
  color: var(--ink-700);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -.01em;
}
dialog#bgv-drawer .bgv-review-list {
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--paper-raised);
}
dialog#bgv-drawer .bgv-review-item {
  min-height: 70px;
  padding: 12px 12px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  border: 0;
  border-bottom: 1px solid var(--rule);
  border-radius: 0;
  color: var(--ink-700);
  background: var(--paper-raised);
  box-shadow: none;
}
dialog#bgv-drawer .bgv-review-item:last-child { border-bottom: 0; }
dialog#bgv-drawer .bgv-review-item:hover,
dialog#bgv-drawer .bgv-review-item:active {
  color: var(--ink);
  background: var(--surface);
  box-shadow: none;
  transform: none;
}
dialog#bgv-drawer .bgv-review-item:focus-visible {
  position: relative;
  z-index: 1;
  outline-offset: -3px;
}
.bgv-review-item__marker {
  width: 32px;
  height: 32px;
  display: inline-flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: var(--ink-600);
  background: var(--surface-hover);
}
.bgv-review-item__marker svg { width: 16px; height: 16px; }
.bgv-review-item--attention .bgv-review-item__marker {
  color: var(--brick-ink);
  background: var(--brick-bg);
}
dialog#bgv-drawer .bgv-review-item__content { min-width: 0; }
dialog#bgv-drawer .bgv-review-item__content strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
dialog#bgv-drawer .bgv-review-item__content small {
  margin-top: 2px;
  overflow: hidden;
  color: var(--ink-muted);
  font-size: 11px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
dialog#bgv-drawer .bgv-review-item__action {
  min-height: 34px;
  padding: 6px 9px 6px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid var(--rule);
  border-radius: 9px;
  color: var(--ink-700);
  background: var(--paper-raised);
  font-size: 11px;
  font-weight: 650;
  white-space: nowrap;
}
dialog#bgv-drawer .bgv-review-item__action svg {
  width: 14px;
  height: 14px;
  transition: transform 180ms ease;
}
dialog#bgv-drawer .bgv-review-item:hover .bgv-review-item__action {
  border-color: var(--rule-mid);
  color: var(--ink);
}
dialog#bgv-drawer .bgv-review-item:hover .bgv-review-item__action svg { transform: translateX(2px); }
dialog#bgv-drawer .bgv-progress-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
dialog#bgv-drawer .bgv-progress-grid__wide { grid-column: 1 / -1; }
body.bgv-panel-open #bgv-ledger th:first-child,
body.bgv-panel-open #bgv-ledger td:first-child { display: table-cell; }
body.bgv-panel-open .hireai-launcher { right: 24px; }

@media (max-width: 560px) {
  dialog#bgv-drawer .bgv-review-item {
    grid-template-columns: 30px minmax(0, 1fr) 32px;
    gap: 9px;
    padding: 11px 10px;
  }
  dialog#bgv-drawer .bgv-review-item__marker { width: 30px; height: 30px; }
  dialog#bgv-drawer .bgv-review-item__content small { white-space: normal; }
  dialog#bgv-drawer .bgv-review-item__action {
    width: 32px;
    min-height: 32px;
    padding: 0;
  }
  dialog#bgv-drawer .bgv-review-item__action > span { display: none; }
}

.page--bgv #bgv-ledger { table-layout: fixed; }
.page--bgv #bgv-ledger tbody td { padding: 17px 14px; vertical-align: middle; }
.page--bgv #bgv-ledger tbody tr[data-case] { transition: background-color 180ms ease, box-shadow 180ms ease; }
.page--bgv #bgv-ledger tbody tr[data-case]:hover { background: var(--surface); border: 1px solid var(--accent); }

@media (max-width: 720px) {
  .card > .table-wrap:has(.ledger--candidates) { overflow: visible; border: 0; background: transparent; }
  .ledger--candidates { min-width: 0; table-layout: auto; }
  .ledger--candidates tbody tr { background: var(--paper-raised); box-shadow: var(--shadow-sm); }
  .ledger--candidates tbody td { width: 100%; padding: 10px 0; }
  .ledger--candidates td:nth-child(n) { width: 100%; }
  .ledger--candidates td:nth-child(10) { text-align: left; }
  .ledger--candidates .ledger__actions { width: auto; justify-content: flex-start; }
  .ledger--candidates select.stamp-select { width: min(100%, 280px); }
  dialog#candidate-drawer > .drawer__header,
  dialog#bgv-drawer > .drawer__header { padding-inline: 22px; }
  dialog#candidate-drawer > .drawer__body,
  dialog#bgv-drawer > .drawer__body { padding-inline: 22px; }
  dialog#candidate-drawer .pipeline-grid { grid-template-columns: 1fr; row-gap: 0; }
  dialog#candidate-drawer .pipeline-grid__row {
    display: flex;
    margin-bottom: 16px;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  dialog#candidate-drawer .pipeline-grid__label { padding-top: 0; }
}

/* HireAI is deliberately a supporting utility, never the visual center. */
.hireai-launcher { right: 24px; bottom: 24px; min-height: 46px; background: var(--ink); box-shadow: var(--shadow-pop); }
#hireai-dialog { border-radius: var(--radius-lg); }
.hireai-dialog__status-dot { background: var(--accent); }
.hireai__input-wrap { border-color: var(--rule); background: var(--surface); }

/* Login */
.auth-shell { min-height: 100dvh; padding: 32px; }
.auth-panel { max-width: 1020px; min-height: 620px; border-color: color-mix(in oklab, var(--rule) 78%, white); border-radius: var(--radius-xl); box-shadow: var(--shadow-modal); }
.auth-panel__form { padding: 64px; }
.auth-wordmark {
  display: inline-flex;
  margin-bottom: 56px;
  align-items: center;
  gap: 11px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -.04em;
}
.auth-wordmark::after { display: none; }
.auth-wordmark__mark {
  display: block;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  border-radius: 50%;
  object-fit: cover;
}
.auth-panel__form-inner h1 { margin-bottom: 8px; font-size: 34px; letter-spacing: -.04em; }
.auth-panel__form-inner input { min-height: 48px; padding: 12px 15px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--surface); }
.auth-panel__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, color-mix(in oklab, var(--ink) 24%, transparent), transparent 58%); pointer-events: none; }

/* Public forms inherit the same restrained foundations. */
.apply-page, .bgv-public { background: var(--paper); }
.apply-card, .bgv-form-panel { border-color: var(--rule); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); }

/* Responsive shell */
@media (max-width: 1180px) {
  .nav { gap: 22px; padding-inline: var(--page-gutter); }
  .nav__links { gap: 3px; }
  .nav .nav__link { padding-inline: 10px; }
  .page { padding-right: var(--page-gutter); padding-left: var(--page-gutter); }
  .metrics-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .settings-layout { grid-template-columns: 180px minmax(0, 1fr); gap: 24px; }
}

@media (max-width: 820px) {
  .candidate-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 12px; }
  .candidate-toolbar__search { width: 100%; }
  .candidate-toolbar__reset { grid-column: 2; grid-row: 1; justify-self: end; }
  .candidate-toolbar__dates { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  .candidate-toolbar__statuses { grid-row: 3; }
  .candidate-toolbar .chip-group { width: 100%; }
  .candidate-toolbar__rule { display: none; }
  body { background-attachment: scroll; }
  .nav {
    position: sticky;
    top: 0;
    width: calc(100% - 20px);
    min-height: 0;
    margin: 0 auto;
    padding: 13px 16px 10px;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    border: 0;
    border-radius: 0 0 var(--radius-lg) var(--radius-lg);
    background: rgba(198, 202, 210, .48);
    box-shadow: 0 8px 24px color-mix(in oklab, var(--ink) 6%, transparent);
  }
  .nav__brand { padding: 0; font-size: 20px; }
  .nav__brand::after { display: none; }
  .nav__links { order: 3; width: 100%; margin: 0; flex-direction: row; gap: 4px; overflow-x: auto; scrollbar-width: none; }
  .nav__links::-webkit-scrollbar { display: none; }
  .nav .nav__link { min-height: 38px; padding: 0 11px; white-space: nowrap; }
  .nav__profile-wrap, .nav__logout { margin: 0 0 0 auto; padding: 0; border: 0; }
  .nav__profile { width: auto; min-height: 42px; }
  .nav__profile-avatar { width: 32px; height: 32px; }
  .nav__profile-name { display: none; }
  .nav__batch-status { margin: 0 0 0 auto; padding: 0; border: 0; }
  .nav__profile-menu { top: calc(100% + 8px); right: 0; bottom: auto; left: auto; }
  .page { width: 100%; margin: 0; padding: 36px 16px 76px; }
  .page-header, .bgv-head { margin-bottom: 30px; }
  .settings-layout { display: block; }
  .settings-nav { position: static; margin-bottom: var(--space-md); padding: 6px; flex-direction: row; overflow-x: auto; }
  .settings-nav__item { width: auto; flex: 0 0 auto; white-space: nowrap; }
  .page--bgv .bgv-filters .filters__fields { grid-template-columns: 1fr 1fr; }
  .page--bgv .bgv-filters .field { border-bottom: 1px solid var(--rule); }
  .page--bgv .bgv-filters .field--search { grid-column: 1 / -1; }
  .page--bgv .bgv-filters__clear {
    grid-column: 1 / -1;
    min-height: 42px;
    border-top: 1px solid var(--rule);
  }
}

@media (max-width: 640px) {
  .page { padding: 28px 16px 64px; }
  .page-header, .bgv-head { align-items: flex-start; gap: 18px; }
  .page-header__actions, .bgv-head > button { width: 100%; }
  .page-header__actions button, .bgv-head > button { flex: 1; }
  .card { padding: 20px 16px; }
  .intake-row { display: grid; }
  .status-bar { align-items: flex-start; flex-wrap: wrap; }
  .status-bar__spacer { display: none; }
  .status-bar button { width: 100%; }
  .metrics-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric { min-height: 96px; padding: 15px; }
  .filters__fields { display: grid; grid-template-columns: 1fr; }
  .candidate-workspace { padding: 0; }
  .candidate-toolbar { padding: 14px; }
  .candidate-toolbar__dates { width: 100%; }
  .candidate-toolbar__dates label { flex: 1 1 0; padding-inline: 8px; gap: 5px; }
  .candidate-toolbar__dates input { flex: 1 1 0; width: 0; }
  .candidate-filter-bar { padding-inline: 14px; }
  .candidate-workspace .pagination { padding: 12px 14px; }
  .candidate-workspace .pagination__info { width: 100%; }
  .settings-grid, .form-row { grid-template-columns: 1fr; }
  .file-row { align-items: flex-start; flex-wrap: wrap; }
  .file-row__actions { width: 100%; justify-content: flex-start; }
  .bgv-ready { grid-template-columns: 1fr; gap: 10px; padding: 16px; }
  .bgv-workspace__header { padding: 18px 16px; }
  .page--bgv .bgv-filters { margin: 14px; }
  .page--bgv .bgv-filters .filters__fields { grid-template-columns: 1fr; }
  .page--bgv .bgv-filters .field--search { grid-column: auto; }
  .page--bgv .bgv-filters__clear { min-height: 44px; }
  .bgv-tabs { padding: 0 14px; gap: 18px; overflow-x: auto; }
  .bgv-tab { flex: 0 0 auto; white-space: nowrap; }
  .bgv-ledger-wrap { padding: 0 14px 10px; overflow-x: auto; }
  .page--bgv #bgv-ledger { min-width: 860px; }
  dialog { max-width: calc(100vw - 24px); padding: 20px; }
  .auth-shell { padding: 16px; }
  .auth-panel__form { padding: 36px 24px; }
  .auth-wordmark { margin-bottom: 40px; }
  .hireai-launcher span { display: none; }
  .hireai-launcher { width: 48px; padding: 0; }
}

@media (max-width: 380px) {
  .metrics-row { grid-template-columns: 1fr; }
  .nav { padding-inline: 12px; }
  .page { padding-inline: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* BGV case file — compact evidence, readable audit history, and a decision
   surface that belongs to the drawer instead of looking like a nested modal. */
dialog#bgv-drawer .bgv-case-disclosure > summary {
  min-height: 68px;
  padding: 16px 2px;
  gap: 3px 20px;
  transition: color 180ms ease;
}
dialog#bgv-drawer .bgv-case-disclosure > summary:hover span { color: var(--ink); }
dialog#bgv-drawer .bgv-case-disclosure > summary span {
  color: var(--ink-800);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.01em;
}
dialog#bgv-drawer .bgv-case-disclosure > summary small {
  color: var(--ink-muted);
  font-size: 12px;
  line-height: 1.4;
}
dialog#bgv-drawer .bgv-case-disclosure > summary::after {
  width: 17px;
  height: 17px;
  margin-right: 3px;
  border: 0;
  color: var(--ink-muted);
  content: "";
  font-size: 0;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 7 7 7-7' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 8 7 7 7-7' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: none;
  transition: transform 180ms ease, color 180ms ease;
}
dialog#bgv-drawer .bgv-case-disclosure[open] > summary::after {
  content: "";
  color: var(--ink);
  transform: rotate(180deg);
}
dialog#bgv-drawer .bgv-case-disclosure__body { padding: 4px 0 24px; }

dialog#bgv-drawer #bgv-drawer-declaration {
  border-radius: 14px;
  background: var(--rule);
}
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row {
  min-height: 76px;
  padding: 14px 16px;
  background: var(--paper-raised);
}
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row--audit,
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row--audit {
  min-height: 64px;
  background: var(--surface);
}
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row-label {
  margin-bottom: 5px;
  font-size: 11px;
  font-weight: 600;
}
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row-value {
  font-size: 13px;
  font-weight: 650;
}
dialog#bgv-drawer #bgv-drawer-declaration .drawer__row--audit .drawer__row-value {
  color: var(--ink-600);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}

dialog#bgv-drawer .bgv-declaration-download {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 12px;
  padding: 13px 14px 13px 16px;
  border: 1px solid var(--rule-strong);
  border-radius: 13px;
  background: var(--surface);
}
dialog#bgv-drawer .bgv-declaration-download__copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}
dialog#bgv-drawer .bgv-declaration-download__copy strong {
  color: var(--ink);
  font-size: 13px;
  font-weight: 680;
  line-height: 1.35;
}
dialog#bgv-drawer .bgv-declaration-download__copy span {
  color: var(--ink-muted);
  font-size: 11px;
  line-height: 1.4;
}
dialog#bgv-drawer .bgv-declaration-download .btn {
  min-height: 38px;
  flex: 0 0 auto;
  gap: 8px;
  padding-inline: 14px;
  border-color: var(--ink-900);
  background: var(--ink-900);
  color: var(--paper-raised);
  text-decoration: none;
  box-shadow: 0 6px 16px rgba(17, 24, 39, 0.14);
}
dialog#bgv-drawer .bgv-declaration-download .btn:hover {
  border-color: var(--ink-700);
  background: var(--ink-700);
  transform: translateY(-1px);
}
dialog#bgv-drawer .bgv-declaration-download .btn:active { transform: translateY(0); }

dialog#bgv-drawer .bgv-block { padding-block: 17px; }
dialog#bgv-drawer .bgv-block:first-child { padding-top: 2px; }
dialog#bgv-drawer .bgv-block__title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 8px;
}
dialog#bgv-drawer .bgv-block__title strong {
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}
dialog#bgv-drawer .bgv-block__title span {
  color: var(--ink-600);
  font-size: 13px;
  font-weight: 550;
}
dialog#bgv-drawer .bgv-block__meta { margin-top: 5px; font-size: 12px; }
dialog#bgv-drawer .bgv-block--flagged {
  padding-left: 16px;
  border: 1px solid var(--brick-border);
}

dialog#bgv-drawer .bgv-docs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 16px;
}
dialog#bgv-drawer .bgv-doc {
  display: flex;
  min-width: 0;
  min-height: 70px;
  margin: 0;
  padding: 12px 13px;
  align-items: center;
  gap: 11px;
  border: 1px solid var(--rule-strong);
  border-radius: 12px;
  color: var(--ink-700);
  background: var(--paper-raised);
  box-shadow: none;
  text-decoration: none;
  transition: border-color 180ms ease, background-color 180ms ease, transform 100ms ease;
}
dialog#bgv-drawer .bgv-doc:hover {
  border-color: var(--rule-mid);
  color: var(--ink);
  background: var(--surface);
}
dialog#bgv-drawer .bgv-doc:active { transform: translateY(1px); }
dialog#bgv-drawer .bgv-doc:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
dialog#bgv-drawer .bgv-doc__icon {
  display: inline-flex;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  color: var(--ink-600);
  background: var(--surface-hover);
}
dialog#bgv-drawer .bgv-doc__copy {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 2px;
}
dialog#bgv-drawer .bgv-doc__copy strong {
  overflow: hidden;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
dialog#bgv-drawer .bgv-doc__copy small { color: var(--ink-muted); font-size: 10.5px; }
dialog#bgv-drawer .bgv-doc__arrow { flex: 0 0 auto; color: var(--ink-muted); }

dialog#bgv-drawer .bgv-timeline__row {
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 16px;
}
dialog#bgv-drawer .bgv-timeline__when {
  color: var(--ink-muted);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
dialog#bgv-drawer .bgv-timeline__what {
  padding: 0 0 16px 19px;
  color: var(--ink-700);
  font-size: 12.5px;
  line-height: 1.55;
}
dialog#bgv-drawer .bgv-timeline__what::before {
  top: 5px;
  width: 7px;
  height: 7px;
  background: var(--ink-400);
}
dialog#bgv-drawer .bgv-timeline__actor { color: var(--ink-muted); white-space: nowrap; }

dialog#bgv-drawer .bgv-verdict-panel {
  margin: 0;
  padding: 26px 0 34px;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none;
}
dialog#bgv-drawer .bgv-verdict-heading { margin-bottom: 9px; }
dialog#bgv-drawer .bgv-verdict-heading .drawer__section-title { margin: 0; }
dialog#bgv-drawer .bgv-decision-note {
  max-width: 58ch;
  margin: 0 0 15px;
  color: var(--ink-600);
  font-size: 13px;
  line-height: 1.55;
}
dialog#bgv-drawer .bgv-decision-readiness {
  margin: 0 0 16px;
  padding: 10px 12px;
  border: 1px solid var(--rule);
  border: 1px solid var(--ink-400);
  border-radius: 10px;
  color: var(--ink-700);
  background: var(--surface);
  font-size: 12px;
  line-height: 1.45;
}
dialog#bgv-drawer .bgv-verdict-choice { gap: 8px; margin-bottom: 18px; }
dialog#bgv-drawer .bgv-verdict-card {
  position: relative;
  min-height: 68px;
  padding: 12px 14px;
  align-items: center;
  border-color: var(--rule);
  background: var(--paper-raised);
  transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
dialog#bgv-drawer .bgv-verdict-card:hover {
  border-color: var(--rule-mid);
  background: var(--surface);
}
dialog#bgv-drawer .bgv-verdict-card:has(input:checked) {
  border-color: var(--ink-700);
  background: var(--surface);
  border: 1px solid var(--ink);
}
dialog#bgv-drawer .bgv-verdict-card__text strong { font-size: 13px; font-weight: 700; }
dialog#bgv-drawer .bgv-verdict-card__text small { font-size: 11.5px; line-height: 1.4; }
dialog#bgv-drawer .bgv-verdict-card__icon {
  width: 30px;
  height: 30px;
  margin: 0;
  padding: 6px;
  border-radius: 9px;
  color: var(--ink-600);
  background: var(--surface);
}
dialog#bgv-drawer .bgv-verdict-card:has(input:checked) .bgv-verdict-card__icon {
  color: var(--paper-raised);
  background: var(--ink);
}
dialog#bgv-drawer .bgv-verdict-panel label[for="bgv-verdict-note"] { font-size: 12px; }
dialog#bgv-drawer .bgv-verdict-panel textarea {
  min-height: 108px;
  padding: 12px 13px;
  font-size: 13px;
  line-height: 1.55;
  resize: vertical;
}
dialog#bgv-drawer .bgv-verdict-panel .field__hint { margin: 6px 0 16px; font-size: 10.5px; }
dialog#bgv-drawer .bgv-verdict-lock { margin-top: 10px; line-height: 1.45; }
dialog#bgv-drawer > .bgv-drawer__footer button { min-width: 126px; }

@media (max-width: 560px) {
  dialog#bgv-drawer .bgv-declaration-download {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
  }
  dialog#bgv-drawer .bgv-declaration-download .btn { justify-content: center; }
  dialog#bgv-drawer #bgv-drawer-declaration { grid-template-columns: 1fr; }
  dialog#bgv-drawer #bgv-drawer-declaration .drawer__row,
  dialog#bgv-drawer #bgv-drawer-declaration .drawer__row--audit { grid-column: 1; }
  dialog#bgv-drawer .bgv-docs { grid-template-columns: 1fr; }
  dialog#bgv-drawer .bgv-timeline__row { grid-template-columns: 1fr; gap: 3px; }
  dialog#bgv-drawer .bgv-timeline__when { padding-left: 19px; }
  dialog#bgv-drawer .bgv-verdict-panel { padding: 24px 0 30px; }
}

/* BGV overview — workload state and startable candidates share one compact
   summary row instead of spending a full-width panel on a single action. */
.page--bgv .bgv-summary-row {
  display: grid;
  grid-template-columns: minmax(220px, .26fr) minmax(0, 1fr);
  gap: 0;
  margin: 0 0 16px;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  background: var(--paper-raised);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--ink) 4%, transparent),
    0 10px 28px color-mix(in oklab, var(--ink) 4%, transparent);
}
.page--bgv .bgv-summary-row:has(.bgv-ready[hidden]),
.page--bgv .bgv-summary-row:has(.bgv-turn[hidden]) {
  grid-template-columns: 1fr;
  gap: 0;
}
.page--bgv .bgv-summary-row:has(.bgv-ready[hidden]):has(.bgv-turn[hidden]) { display: none; }
.page--bgv .bgv-summary-row .bgv-turn {
  display: flex;
  min-width: 0;
  min-height: 92px;
  margin: 0;
  padding: 18px 20px;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
  border-right: 1px solid var(--rule);
  background: var(--surface);
}
.page--bgv .bgv-summary-row:has(.bgv-ready[hidden]) .bgv-turn { border-right: 0; }
.page--bgv .bgv-summary-row .bgv-turn p { margin: 0; }
.page--bgv .bgv-summary-row .bgv-turn__what {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -.015em;
}
.page--bgv .bgv-summary-row .bgv-turn__rest { font-size: 12px; }

.page--bgv .bgv-summary-row .bgv-ready {
  display: grid;
  width: 100%;
  margin: 0;
  padding: 0;
  grid-template-columns: 160px minmax(0, 1fr);
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--paper-raised);
  box-shadow: none;
}
.page--bgv .bgv-summary-row .bgv-ready__header {
  display: flex;
  min-width: 0;
  padding: 16px 17px;
  align-items: flex-start;
  justify-content: center;
  flex-direction: column;
  border-right: 1px solid var(--rule);
  background: var(--surface);
}
.page--bgv .bgv-summary-row .bgv-ready__header h2 {
  margin: 3px 0 0;
  color: var(--ink);
  font-size: 16px;
  font-weight: 720;
  letter-spacing: -.025em;
  line-height: 1.25;
}
.page--bgv .bgv-summary-row .bgv-ready__header h2::before { display: none; }
.page--bgv .bgv-summary-row .bgv-ready__eyebrow {
  color: var(--ink-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}
.page--bgv .bgv-summary-row .bgv-ready__header p {
  max-width: 21ch;
  margin: 6px 0 0;
  color: var(--ink-600);
  font-size: 11px;
  line-height: 1.45;
  text-wrap: pretty;
}
.page--bgv .bgv-summary-row .bgv-ready__count {
  margin-top: 9px;
  color: var(--ink-700);
  font-family: var(--font-mono);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.page--bgv .bgv-ready__browse {
  min-height: 30px;
  margin-top: 10px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 5px;
  border: 0;
  border-radius: 0;
  color: var(--ink-700);
  background: transparent;
  box-shadow: none;
  font-size: 10.5px;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--rule-mid);
  text-underline-offset: 3px;
}
.page--bgv .bgv-ready__browse svg { width: 14px; height: 14px; transition: transform 160ms ease; }
.page--bgv .bgv-ready__browse:hover {
  color: var(--ink);
  background: transparent;
  box-shadow: none;
  transform: none;
  text-decoration-color: currentColor;
}
.page--bgv .bgv-ready__browse:hover svg { transform: translateX(2px); }
.page--bgv .bgv-ready__browse:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.page--bgv .bgv-summary-row .bgv-ready .file-rows {
  min-width: 0;
  margin: 0;
  padding: 7px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 390px), 1fr));
  align-content: center;
  gap: 2px;
  border-top: 0;
  border-left: 0;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row {
  min-width: 0;
  min-height: 62px;
  padding: 8px 9px;
  flex-wrap: nowrap;
  gap: 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  transition: background-color 180ms ease;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row:hover,
.page--bgv .bgv-summary-row .bgv-ready .file-row:focus-within {
  background: var(--surface);
}
.page--bgv .bgv-summary-row .bgv-ready .file-row + .file-row {
  margin-top: 0;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row + .file-row::before {
  display: none;
}
.page--bgv .bgv-ready__avatar {
  display: inline-flex;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in oklab, var(--rule) 75%, white);
  border-radius: 12px;
  color: var(--ink-800);
  background: var(--surface-hover);
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: -.02em;
  box-shadow: inset 0 1px 0 color-mix(in oklab, white 75%, transparent);
}
.page--bgv .bgv-summary-row .bgv-ready .file-row__name {
  display: flex;
  min-width: 0;
  flex: 1;
  align-self: center;
  flex-direction: column;
  color: var(--ink);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row__name > strong {
  overflow: hidden;
  font-size: 13.5px;
  font-weight: 720;
  letter-spacing: -.015em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.page--bgv .bgv-summary-row .bgv-ready .bgv-block__meta {
  display: flex;
  min-width: 0;
  margin-top: 4px;
  align-items: center;
  gap: 7px;
  overflow: hidden;
  color: var(--ink-muted);
  font-family: var(--font-body);
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
}
.page--bgv .bgv-ready__email {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.page--bgv .bgv-ready__role {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.page--bgv .bgv-ready__role::before {
  width: 3px;
  height: 3px;
  flex: 0 0 3px;
  border-radius: 50%;
  background: var(--ink-400);
  content: "";
}
.page--bgv .bgv-summary-row .bgv-ready .file-row__actions {
  flex: 0 0 auto;
  margin-left: 8px;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button {
  display: inline-flex;
  min-width: 154px;
  min-height: 40px;
  padding: 8px 11px 8px 16px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-color: var(--ink);
  border-radius: 12px;
  color: var(--paper-raised);
  background: var(--ink);
  font-size: 11.5px;
  font-weight: 680;
  box-shadow: 0 5px 14px color-mix(in oklab, var(--ink) 14%, transparent);
  white-space: nowrap;
  transition: background-color 180ms ease, border-color 180ms ease,
    box-shadow 180ms ease, transform 180ms ease;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button::after { display: none; }
.page--bgv .bgv-ready__button-icon {
  width: 20px;
  height: 20px;
  padding: 3px;
  flex: 0 0 20px;
  border-radius: 7px;
  color: var(--ink-800);
  background: var(--paper-raised);
  transition: transform 180ms ease;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button:hover {
  border-color: var(--focus-hover);
  color: var(--paper-raised);
  background: var(--focus-hover);
  box-shadow: 0 8px 20px color-mix(in oklab, var(--ink) 18%, transparent);
  transform: translateY(-1px);
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button:hover .bgv-ready__button-icon,
.page--bgv .bgv-summary-row .bgv-ready .file-row button:focus-visible .bgv-ready__button-icon {
  transform: translateX(2px);
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button:active {
  box-shadow: 0 3px 10px color-mix(in oklab, var(--ink) 12%, transparent);
  transform: translateY(0) scale(.985);
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button:focus-visible {
  outline: 3px solid color-mix(in oklab, var(--accent) 24%, transparent);
  outline-offset: 2px;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row button:disabled {
  cursor: wait;
  opacity: .72;
  transform: none;
}

@media (max-width: 1050px) {
  .page--bgv .bgv-summary-row { grid-template-columns: 1fr; }
  .page--bgv .bgv-summary-row .bgv-turn {
    min-height: 0;
    padding: 14px 16px;
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }
  .page--bgv .bgv-summary-row:has(.bgv-ready[hidden]) .bgv-turn { border-bottom: 0; }
  .page--bgv .bgv-summary-row .bgv-ready { width: 100%; }
}

@media (max-width: 640px) {
  .page--bgv .bgv-summary-row .bgv-ready {
    width: 100%;
    padding: 0;
    grid-template-columns: 1fr;
  }
  .page--bgv .bgv-summary-row .bgv-ready__header {
    display: grid;
    padding: 16px;
    grid-template-columns: 1fr auto;
    justify-content: initial;
    border-right: 0;
    border-bottom: 1px solid var(--rule);
  }
  .page--bgv .bgv-summary-row .bgv-ready__eyebrow,
  .page--bgv .bgv-summary-row .bgv-ready__header p { grid-column: 1 / -1; }
  .page--bgv .bgv-summary-row .bgv-ready__header h2 { grid-column: 1; }
  .page--bgv .bgv-summary-row .bgv-ready__count {
    grid-column: 2;
    grid-row: 2;
    margin: 5px 0 0 12px;
  }
  .page--bgv .bgv-summary-row .bgv-ready__header p { max-width: 48ch; }
  .page--bgv .bgv-summary-row .bgv-ready .file-rows {
    padding: 7px;
    border-left: 0;
  }
  .page--bgv .bgv-summary-row .bgv-ready .file-row {
    display: grid;
    min-height: 0;
    padding: 10px;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: center;
  }
  .page--bgv .bgv-summary-row .bgv-ready .file-row__actions {
    grid-column: 2;
    width: auto;
    margin: 5px 0 0;
    justify-self: start;
  }
  .page--bgv .bgv-summary-row .bgv-ready .file-row button {
    width: auto;
    min-width: 158px;
  }
}

/* --------------------------------------------------------------------------
   Verification workspace — dense enterprise command surface

   The page is deliberately flatter than the rest of the product: one status
   strip, one bounded start queue, and one persistent table. This keeps 2 or
   1,000 records in the same spatial model and avoids nested dashboard cards.
   -------------------------------------------------------------------------- */
.page--bgv {
  max-width: 1680px;
  padding-top: 34px;
  font-family: var(--font-body);
}

.page--bgv button,
.page--bgv input,
.page--bgv select,
.page--bgv textarea {
  font-family: var(--font-body);
}

.page--bgv h1,
.page--bgv h2,
.page--bgv h3,
.page--bgv .drawer__name {
  font-family: var(--font-display);
}

.page--bgv .bgv-head {
  min-height: 54px;
  margin-bottom: 14px;
  align-items: center;
  text-align: left;
}

.page--bgv .bgv-head h1 {
  font-size: clamp(27px, 1.8vw, 32px);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.03em;
  word-spacing: .08em;
}

.page--bgv .bgv-head__sub {
  margin-top: 3px;
  color: var(--ink-700);
  font-size: 14px;
}

.page--bgv .bgv-head__action {
  min-height: 40px;
  padding: 8px 15px;
  border-radius: 8px;
  color: white;
  background: var(--ink);
  box-shadow: none;
}

.page--bgv .bgv-head__action svg {
  width: 17px;
  height: 17px;
}

.page--bgv .bgv-head__action:hover {
  background: var(--focus-hover);
  box-shadow: none;
  transform: none;
}

.page--bgv .bgv-command-strip {
  min-height: 44px;
  margin: 16px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.page--bgv .bgv-command-strip__metrics {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 0;
}

.page--bgv .bgv-command-stat {
  position: relative;
  min-width: 145px;
  min-height: 36px;
  padding: 0 18px 0 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.page--bgv .bgv-command-stat--progress,
.page--bgv .bgv-command-stat--complete { border-left: 1px solid var(--rule); }

.page--bgv .bgv-command-stat::before {
  position: absolute;
  left: 17px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink-400);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--ink-400) 12%, transparent);
  content: "";
}

.page--bgv .bgv-command-stat--ready::before {
  background: var(--ink-700);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--ink-700) 12%, transparent);
}

.page--bgv .bgv-command-stat--progress::before {
  background: var(--amber-ink);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--amber-ink) 12%, transparent);
}

.page--bgv .bgv-command-stat--complete::before {
  background: var(--green-ink);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--green-ink) 12%, transparent);
}

.page--bgv .bgv-command-stat span {
  color: var(--ink-700);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.page--bgv .bgv-command-stat strong {
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 15px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.page--bgv button.bgv-command-stat {
  min-height: 0;
  border: 0;
  border-right: 1px solid var(--rule);
  border-radius: 0;
  color: inherit;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  transition: background-color 160ms ease;
}

.page--bgv button.bgv-command-stat:hover {
  color: inherit;
  background: var(--surface);
  box-shadow: none;
  transform: none;
}

.page--bgv button.bgv-command-stat:focus-visible {
  outline: 0;
  box-shadow: inset 0 0 0 2px color-mix(in oklab, var(--focus) 24%, transparent);
}

.page--bgv button.bgv-command-stat:disabled {
  color: inherit;
  background: transparent;
  cursor: default;
  opacity: 1;
}

.page--bgv .bgv-ready-launch { min-width: 232px; }

.page--bgv button.bgv-ready-launch {
  min-height: 42px;
  margin: 0 16px 0 0;
  padding: 0 11px 0 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 16px;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--ink-400);
  border-radius: var(--radius-sm);
  color: var(--ink);
  background: transparent;
  box-shadow: none;
}

.page--bgv button.bgv-ready-launch::before { display: none; }

.page--bgv button.bgv-ready-launch .bgv-ready-launch__label {
  min-width: 0;
  display: flex;
  align-items: center;
  color: var(--ink);
  font-size: 12px;
  font-weight: 720;
}

.page--bgv button.bgv-ready-launch .bgv-ready-launch__label > span:last-child {
  overflow: hidden;
  color: inherit;
  font: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.page--bgv button.bgv-ready-launch .bgv-ready-launch__count {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  color: var(--ink-600);
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}

.page--bgv button.bgv-ready-launch .bgv-ready-launch__count strong {
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
}

.page--bgv .bgv-ready-launch__count small { font: inherit; }

.page--bgv .bgv-ready-launch__chevron {
  width: 15px;
  height: 15px;
  color: var(--ink-soft);
}

.page--bgv button.bgv-ready-launch:hover {
  border-color: var(--ink);
  color: var(--ink);
  background: var(--paper-raised);
  box-shadow: none;
}

.page--bgv button.bgv-ready-launch:active {
  box-shadow: none;
  transform: translateY(1px);
}

.page--bgv button.bgv-ready-launch:disabled {
  border-color: var(--rule);
  color: var(--ink-soft);
  background: transparent;
  box-shadow: none;
}

.page--bgv button.bgv-ready-launch:disabled .bgv-ready-launch__label,
.page--bgv button.bgv-ready-launch:disabled .bgv-ready-launch__count strong,
.page--bgv button.bgv-ready-launch:disabled .bgv-ready-launch__chevron { color: var(--ink-soft); }
.page--bgv button.bgv-ready-launch:disabled .bgv-ready-launch__count,
.page--bgv button.bgv-ready-launch:disabled .bgv-ready-launch__chevron { display: none; }
.page--bgv button.bgv-ready-launch:disabled { grid-template-columns: 1fr; }

.page--bgv .bgv-command-search {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0 13px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  color: var(--ink-600);
  background: var(--paper-raised);
}

.page--bgv .bgv-command-search:focus-within {
  color: var(--ink-700);
  background: var(--paper-raised);
  border-color: var(--ink-400);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--focus) 11%, transparent);
}

.page--bgv .bgv-command-search svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
}

.page--bgv .bgv-command-search input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ink-800);
  font-size: var(--text-md);
  font-weight: 500;
}

.page--bgv .bgv-command-search input::placeholder {
  color: var(--ink-600);
  opacity: 1;
}

.page--bgv .bgv-command-search input:hover,
.page--bgv .bgv-command-search input:focus-visible {
  border: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
}

.page--bgv .bgv-summary-row {
  margin-bottom: 12px;
  border-color: color-mix(in oklab, var(--rule) 92%, white);
  border-radius: 13px;
  box-shadow: 0 1px 2px color-mix(in oklab, var(--ink) 4%, transparent);
}

.page--bgv .bgv-summary-row .bgv-turn {
  min-height: 78px;
  padding: 14px 17px;
  background: color-mix(in oklab, var(--surface) 92%, white);
}

.page--bgv .bgv-summary-row .bgv-turn__what { font-size: 13px; }
.page--bgv .bgv-summary-row .bgv-turn__rest { font-size: 11px; line-height: 1.45; }

.page--bgv .bgv-summary-row .bgv-ready {
  grid-template-columns: 150px minmax(0, 1fr);
}

.page--bgv .bgv-summary-row .bgv-ready__header {
  padding: 13px 15px;
  background: color-mix(in oklab, var(--surface) 92%, white);
}

.page--bgv .bgv-summary-row .bgv-ready__header h2 {
  font-size: 15px;
  letter-spacing: -.01em;
  word-spacing: .06em;
}
.page--bgv .bgv-summary-row .bgv-ready__header p {
  margin-top: 4px;
  color: var(--ink-600);
  font-size: 11px;
  line-height: 1.5;
}
.page--bgv .bgv-summary-row .bgv-ready__count { margin-top: 6px; }
.page--bgv .bgv-ready__browse { min-height: 24px; margin-top: 5px; }

.page--bgv .bgv-summary-row .bgv-ready .file-rows {
  padding: 5px 6px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
}

.page--bgv .bgv-summary-row .bgv-ready .file-row {
  min-height: 58px;
  padding: 7px 8px;
  gap: 10px;
  border-radius: 9px;
  transition: background-color 160ms cubic-bezier(.23, 1, .32, 1);
}

.page--bgv .bgv-ready__avatar {
  width: 38px;
  height: 38px;
  flex-basis: 38px;
  border-radius: 10px;
}

.page--bgv .bgv-summary-row .bgv-ready .file-row__name > strong {
  font-size: 13px;
  letter-spacing: 0;
  word-spacing: .08em;
}
.page--bgv .bgv-summary-row .bgv-ready .bgv-block__meta {
  margin-top: 3px;
  color: var(--ink-600);
  font-size: 11px;
  line-height: 1.4;
}
.page--bgv .bgv-summary-row .bgv-ready .file-row__actions { margin-left: 4px; }

.page--bgv .bgv-summary-row .bgv-ready .file-row button {
  min-width: 142px;
  min-height: 36px;
  padding: 7px 9px 7px 13px;
  border-radius: 9px;
  box-shadow: 0 3px 9px color-mix(in oklab, var(--ink) 13%, transparent);
  font-size: 11.5px;
  transition: background-color 160ms cubic-bezier(.23, 1, .32, 1),
    border-color 160ms cubic-bezier(.23, 1, .32, 1),
    transform 120ms cubic-bezier(.23, 1, .32, 1);
}

.page--bgv .bgv-summary-row .bgv-ready .file-row button:hover {
  border-color: var(--focus-hover);
  background: var(--focus-hover);
  box-shadow: 0 3px 9px color-mix(in oklab, var(--ink) 13%, transparent);
  transform: none;
}

.page--bgv .bgv-summary-row .bgv-ready .file-row button:hover .bgv-ready__button-icon {
  transform: none;
}

.page--bgv .bgv-ready__button-icon {
  width: 18px;
  height: 18px;
  flex-basis: 18px;
  transition: none;
}

.page--bgv .bgv-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  background: var(--paper-raised);
  box-shadow: none;
}

.page--bgv .bgv-workspace__header {
  min-height: 52px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  flex-direction: row;
  text-align: left;
  gap: 10px;
  border-bottom: 0;
}

.page--bgv .bgv-workspace__header h2 {
  margin: 0;
  font-size: var(--text-lg);
  font-weight: 700;
  letter-spacing: -.01em;
  word-spacing: .06em;
}

.page--bgv .bgv-results-count {
  color: var(--ink-soft);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

.page--bgv .bgv-filters {
  min-height: 0;
  margin: 0;
  padding: 0 18px 10px;
  align-self: stretch;
  border: 0;
  border-bottom: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
}

.page--bgv .bgv-filters .filters__fields {
  width: 100%;
  height: 100%;
  grid-template-columns: minmax(200px, 1fr) minmax(190px, auto) minmax(210px, auto) auto;
  align-items: center;
  gap: 8px;
}

.page--bgv .bgv-filters .field {
  min-width: 0;
  margin: 0;
  padding: 0 10px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  background: var(--paper-raised);
}
.page--bgv .bgv-filters .field + .field { box-shadow: none; }

.page--bgv .bgv-filters .field label {
  margin: 0;
  flex-shrink: 0;
  color: var(--ink-600);
  font-size: var(--text-sm);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.1;
  text-transform: none;
}

.page--bgv .bgv-filters select {
  min-height: 38px;
  min-width: 0;
  width: 100%;
  padding-right: 22px;
  color: var(--ink-800);
  font-size: var(--text-sm);
  font-weight: 650;
}
.page--bgv .bgv-filters .field:focus-within {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
  box-shadow: none;
}

.page--bgv .bgv-filters__clear {
  min-width: 0;
  padding-inline: 8px;
  border: 0;
  border-radius: var(--radius-sm);
  grid-column: auto;
  font-size: var(--text-sm);
}

.page--bgv .bgv-tabs {
  grid-column: 1 / -1;
  min-height: 42px;
  padding: 0 18px;
  align-items: stretch;
  gap: 22px;
  background: var(--paper-raised);
}

.page--bgv .bgv-tab {
  min-height: 42px;
  font-size: var(--text-md);
  font-weight: 650;
}
.page--bgv .bgv-tab.is-active { border-bottom-color: var(--ink); }
.page--bgv .bgv-tab.is-active::after { background: var(--ink); }

.page--bgv .bgv-tab__count {
  min-width: 18px;
  height: 18px;
  margin-left: 6px;
  padding: 0 5px;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-variant-numeric: tabular-nums;
}

.page--bgv .bgv-ledger-wrap {
  grid-column: 1 / -1;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  border: 0;
}

.page--bgv #bgv-ledger { min-width: 1240px; margin: 0; border: 0; border-radius: 0; }

.page--bgv #bgv-ledger thead th {
  height: 38px;
  padding: 0 13px;
  border-bottom: 1px solid var(--rule);
  color: var(--ink-600);
  background: var(--surface);
  font-size: var(--text-sm);
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.page--bgv #bgv-ledger tbody td {
  height: 80px;
  padding: 14px 13px;
  border-bottom: 1px solid var(--rule);
  font-size: var(--text-md);
}
.page--bgv #bgv-ledger tbody tr:last-child td { border-bottom: 0; }
.page--bgv #bgv-ledger th:nth-child(6),
.page--bgv #bgv-ledger td:nth-child(6) { text-align: left; }
.page--bgv #bgv-ledger .ledger__candidate-name { font-size: var(--text-md); }
.page--bgv #bgv-ledger .ledger__candidate-email {
  margin-top: 4px;
  font-size: var(--text-sm);
  overflow-wrap: anywhere;
  white-space: normal;
}
.page--bgv #bgv-ledger td[data-label="Role"] {
  overflow-wrap: anywhere;
}
.page--bgv #bgv-ledger .bgv-next { max-width: none; }
.bgv-next__label { display: block; color: var(--ink-700); line-height: 1.5; }
.bgv-next--mine .bgv-next__label { color: var(--ink); font-weight: 650; }
.bgv-next__detail { display: block; margin-top: 4px; color: var(--ink-soft); font-size: var(--text-sm); line-height: 1.5; }
.page--bgv .bgv-case-link {
  min-height: 36px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--ink-soft);
  background: transparent;
  box-shadow: none;
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  font-weight: 500;
  white-space: nowrap;
}
.page--bgv .bgv-case-link:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 4px; transform: none; }
.page--bgv .bgv-case-link:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.page--bgv .bgv-row-menu { display: inline-flex; }
.page--bgv .bgv-row-menu .row-menu-trigger {
  width: 36px;
  min-width: 36px;
  height: 36px;
  min-height: 36px;
  padding: 0;
  border: 1px solid var(--rule);
  border-radius: var(--radius-sm);
  color: var(--ink-soft);
  background: var(--paper-raised);
  box-shadow: none;
}
.page--bgv .bgv-row-menu .row-menu-trigger svg { width: 18px; height: 18px; }
.page--bgv .bgv-row-menu .row-menu-trigger:hover,
.page--bgv .bgv-row-menu .row-menu-trigger[aria-expanded="true"] { color: var(--ink); background: var(--surface-hover); transform: none; }
.row-menu.bgv-case-menu {
  width: 248px;
  min-width: 0;
  border-radius: var(--radius-sm);
}
.row-menu.bgv-case-menu svg { width: 16px; height: 16px; flex: 0 0 16px; }
.row-menu.bgv-case-menu .bgv-menu__delete { color: var(--brick-ink); }

.page--bgv #bgv-ledger tbody tr[data-case] {
  transition: background-color 160ms cubic-bezier(.23, 1, .32, 1);
}

.page--bgv #bgv-ledger tbody tr[data-case]:hover {
  border: 0;
  background: color-mix(in oklab, var(--surface) 84%, white);
  box-shadow: none;
}

.page--bgv .bgv-empty {
  grid-column: 1 / -1;
  min-height: 106px;
  margin: 0;
  padding: 23px 20px 27px;
  border-radius: 0;
  background: var(--paper-raised);
}

.page--bgv .bgv-empty .ledger__empty-title {
  font-size: 14px;
  font-weight: 700;
}

.page--bgv .bgv-empty .ledger__empty-body {
  margin-top: 3px;
  color: var(--ink-600);
  font-size: 12px;
}

.page--bgv .bgv-workspace.is-empty .bgv-workspace__header {
  min-height: 52px;
  padding: 0 18px;
}

.page--bgv .bgv-workspace.is-empty .bgv-filters,
.page--bgv .bgv-workspace.is-empty .bgv-tabs,
.page--bgv .bgv-workspace.is-empty .bgv-ledger-wrap {
  display: block;
}

.page--bgv .bgv-workspace.is-empty .bgv-filters { display: flex; }
.page--bgv .bgv-workspace.is-empty .bgv-tabs { display: flex; }
.page--bgv .bgv-workspace.is-empty .bgv-empty { padding: 23px 20px 27px; }

.page--bgv .bgv-case-pagination {
  grid-column: 1 / -1;
  min-height: 48px;
  padding: 8px 14px;
}

@media (max-width: 1050px) {
  .page--bgv .bgv-command-stat { min-width: 135px; padding-right: 13px; }
  .page--bgv button.bgv-ready-launch { min-width: 220px; }
  .page--bgv .bgv-summary-row .bgv-ready .file-rows { grid-template-columns: 1fr; }
  .page--bgv .bgv-workspace { grid-template-columns: 1fr; }
  .page--bgv .bgv-filters {
    grid-column: 1;
    border-left: 0;
  }
  .page--bgv .bgv-filters .filters__fields { justify-content: stretch; }
}

@media (max-width: 820px) {
  .page--bgv { padding-top: 28px; }
  .page--bgv .bgv-command-strip {
    margin-block: 16px;
    align-items: stretch;
    flex-direction: column;
    gap: 10px;
  }
  .page--bgv .bgv-command-strip__metrics { width: 100%; }
  .page--bgv .bgv-command-stat { min-width: 0; min-height: 40px; flex: 1; }
  .page--bgv .bgv-command-search {
    width: 100%;
    min-width: 0;
    min-height: 40px;
  }
  .page--bgv .bgv-filters .filters__fields { grid-template-columns: 1fr 1fr; }
  .page--bgv .bgv-filters .field { flex-direction: column; align-items: stretch; gap: 0; padding-block: 6px; }
  .page--bgv .bgv-filters .field label { text-align: left; font-size: var(--text-xs); }
  .page--bgv .bgv-filters select { min-height: 28px; }
  .page--bgv .bgv-command-search { grid-column: 1 / -1; }
  .page--bgv .bgv-filters__clear { grid-column: 1 / -1; justify-self: end; min-height: 32px; }
}

@media (max-width: 640px) {
  .page--bgv .bgv-head { gap: 12px; }
  .page--bgv .bgv-head__action { width: auto; align-self: flex-start; }
  .page--bgv .bgv-command-strip__metrics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .page--bgv .bgv-command-stat {
    min-height: 32px;
    padding: 0 12px 0 20px;
    border: 0;
    gap: 8px;
  }
  .page--bgv .bgv-command-stat::before { left: 4px; }
  .page--bgv .bgv-command-stat span { font-size: var(--text-sm); }
  .page--bgv .bgv-command-stat strong { font-size: var(--text-md); }
  .page--bgv button.bgv-ready-launch {
    min-width: 0;
    grid-column: 1 / -1;
    min-height: 42px;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    justify-content: initial;
    column-gap: 7px;
  }
  .page--bgv .bgv-ready-launch__chevron,
  .page--bgv .bgv-ready-launch__count small { display: none; }
  .page--bgv .bgv-summary-row .bgv-ready .file-rows { grid-template-columns: 1fr; }
  .page--bgv .bgv-filters .filters__fields { grid-template-columns: 1fr 1fr; }
  .page--bgv .bgv-filters__clear {
    grid-column: 1 / -1;
    min-height: 38px;
    border: 0;
  }
  .page--bgv .bgv-tabs { padding-inline: 13px; gap: 17px; overflow-x: auto; }
  .page--bgv .bgv-ledger-wrap { padding: 0; }
}

/* Stack the case fields on phones; no inherited desktop minimum width. */
@media (max-width: 760px) {
  .page--bgv #bgv-ledger { min-width: 0; }
  .page--bgv .bgv-ledger-wrap { overflow: visible; }
  .page--bgv #bgv-ledger tbody tr[data-case] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    margin: 0;
    padding: 16px;
    border: 0;
    border-bottom: 1px solid var(--rule);
    border-radius: 0;
    box-shadow: none;
  }
  .page--bgv #bgv-ledger tbody td {
    height: auto;
    min-width: 0;
    max-width: none;
    padding: 0;
    border: 0;
    text-align: left;
  }
  .page--bgv #bgv-ledger td[data-label]::before {
    font-size: var(--text-xs);
    letter-spacing: 0;
    text-transform: none;
  }
  .page--bgv #bgv-ledger td[data-label="Case ID"],
  .page--bgv #bgv-ledger td[data-label="Candidate"],
  .page--bgv #bgv-ledger td[data-label="Next action"] { grid-column: 1 / -1; }
  .page--bgv #bgv-ledger td[data-label="Case ID"]::before,
  .page--bgv #bgv-ledger td[data-label="Candidate"]::before,
  .page--bgv #bgv-ledger td.bgv-ledger__action-cell::before { display: none; }
  .page--bgv #bgv-ledger .bgv-ledger__action-cell { width: 100%; min-width: 0; max-width: none; align-self: end; }
  .page--bgv #bgv-ledger .bgv-ledger__actions { justify-content: flex-end; }
  .page--bgv #bgv-ledger .bgv-case-link { width: auto; min-height: 28px; }
  .page--bgv #bgv-ledger .bgv-row-menu .row-menu-trigger,
  .page--bgv #bgv-ledger .bgv-declaration-action { width: 40px; height: 40px; min-height: 40px; }
}

@media (max-width: 420px) {
  .page--bgv .bgv-filters .filters__fields { grid-template-columns: minmax(0, 1fr); }
  .page--bgv .bgv-filters .field { flex-direction: row; align-items: center; gap: 8px; padding-block: 0; }
  .page--bgv .bgv-filters select { min-height: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .page--bgv .bgv-summary-row .bgv-ready .file-row,
  .page--bgv .bgv-summary-row .bgv-ready .file-row button,
  .page--bgv #bgv-ledger tbody tr[data-case] { transition: none; }
}

@media (max-width: 420px) {
  .page--bgv .bgv-summary-row .bgv-ready .file-row__actions {
    grid-column: 1 / -1;
  }
  .page--bgv .bgv-summary-row .bgv-ready .file-row button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .page--bgv .bgv-summary-row .bgv-ready .file-row,
  .page--bgv .bgv-summary-row .bgv-ready .file-row button,
  .page--bgv .bgv-ready__button-icon,
  .page--bgv .bgv-ready__browse svg { transition: none; }
}

/* Bounded high-volume queues. The overview never mounts more than four
   ready candidates or 25 case rows. Larger sets move into deliberately
   paged controls, so a neglected queue remains scannable at 20 or 1,000. */
.page--bgv .bgv-case-pagination {
  margin: 0;
  padding: 12px 20px 14px;
  justify-content: space-between;
  border-top: 1px solid var(--rule);
  background: var(--surface);
}
.page--bgv .bgv-pagination__actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.page--bgv .bgv-case-pagination button,
.page--bgv .bgv-ready-dialog__pagination button {
  min-width: 88px;
  min-height: 34px;
  justify-content: center;
}
.page--bgv .bgv-case-pagination button:disabled,
.page--bgv .bgv-ready-dialog__pagination button:disabled {
  cursor: default;
  opacity: .42;
}

dialog#bgv-ready-dialog {
  width: min(1040px, calc(100vw - 32px));
  height: auto;
  max-width: none;
  max-height: calc(100dvh - 32px);
  padding: 0;
  overflow: hidden;
  border-radius: 16px;
}
dialog#bgv-ready-dialog > .drawer__header {
  min-height: 76px;
  padding: 15px 18px;
}
.page--bgv .bgv-ready-dialog__tools {
  padding: 10px 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border-bottom: 1px solid var(--rule);
  background: var(--surface);
}
.page--bgv .bgv-ready-dialog__tools .field { margin: 0; }
.page--bgv .bgv-ready-dialog__tools input {
  min-height: 42px;
  background: var(--paper-raised);
  box-shadow: none;
}
.page--bgv .bgv-ready-dialog__result-count {
  color: var(--ink-muted);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.page--bgv .bgv-ready-dialog__table-wrap {
  max-height: min(488px, calc(100dvh - 238px));
  overflow: auto;
  background: var(--paper-raised);
}

.page--bgv .bgv-ready-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  color: var(--ink);
}

.page--bgv .bgv-ready-table__candidate-col { width: 26%; }
.page--bgv .bgv-ready-table__email-col { width: 29%; }
.page--bgv .bgv-ready-table__designation-col { width: 25%; }
.page--bgv .bgv-ready-table__action-col { width: 190px; }

.page--bgv .bgv-ready-table thead th {
  position: sticky;
  z-index: 1;
  top: 0;
  height: 38px;
  padding: 0 14px;
  border-bottom: 1px solid var(--rule);
  color: var(--ink-600);
  background: var(--surface);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .065em;
  text-align: left;
  text-transform: uppercase;
}

.page--bgv .bgv-ready-table tbody td {
  height: 62px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--rule);
  color: var(--ink-700);
  font-size: 12px;
  vertical-align: middle;
}

.page--bgv .bgv-ready-table tbody tr:last-child td { border-bottom: 0; }
.page--bgv .bgv-ready-table tbody tr:hover td { background: var(--surface); }

.page--bgv .bgv-ready-table__candidate {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.page--bgv .bgv-ready-table__candidate > span:last-child { min-width: 0; }

.page--bgv .bgv-ready-table__candidate strong {
  display: block;
  overflow: hidden;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.page--bgv .bgv-ready-table .bgv-ready__avatar {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 9px;
  font-size: 10.5px;
}

.page--bgv .bgv-ready-table__email,
.page--bgv .bgv-ready-table__designation {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.page--bgv .bgv-ready-table__mobile-email { display: none; }

.page--bgv .bgv-ready-table th.bgv-ready-table__action,
.page--bgv .bgv-ready-table td.bgv-ready-table__action {
  text-align: right;
}

.page--bgv .bgv-ready-table .js-bgv-start {
  min-width: 152px;
  min-height: 34px;
  padding: 6px 7px 6px 11px;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border: 1px solid var(--ink);
  border-radius: 9px;
  color: var(--paper-raised);
  background: var(--ink);
  font-size: 10.5px;
  font-weight: 700;
  white-space: nowrap;
}

.page--bgv .bgv-ready-table .js-bgv-start:hover {
  color: var(--paper-raised);
  background: var(--focus-hover);
  box-shadow: none;
  transform: none;
}

.page--bgv .bgv-ready-table .bgv-ready__button-icon {
  width: 18px;
  height: 18px;
  flex-basis: 18px;
}
.page--bgv .bgv-ready-dialog__empty {
  padding: 48px 20px;
  display: grid;
  place-content: center;
  gap: 5px;
  text-align: center;
}
.page--bgv .bgv-ready-dialog__empty strong { font-size: 14px; }
.page--bgv .bgv-ready-dialog__empty span { color: var(--ink-muted); font-size: 12px; }
.page--bgv .bgv-ready-dialog__pagination {
  min-height: 56px;
  margin: 0;
  padding: 10px 14px;
  justify-content: space-between;
  border-top: 1px solid var(--rule);
  background: var(--surface);
}

@media (max-width: 760px) {
  dialog#bgv-ready-dialog {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    border-radius: 15px;
  }
  .page--bgv .bgv-ready-dialog__tools {
    grid-template-columns: 1fr;
    gap: 7px;
  }
  .page--bgv .bgv-ready-dialog__result-count { padding-inline: 2px; }
}

@media (max-width: 640px) {
  .page--bgv .bgv-ready-table__candidate-col { width: 42%; }
  .page--bgv .bgv-ready-table__designation-col { width: 28%; }
  .page--bgv .bgv-ready-table__action-col { width: 132px; }
  .page--bgv .bgv-ready-table__email-col,
  .page--bgv .bgv-ready-table th:nth-child(2),
  .page--bgv .bgv-ready-table td:nth-child(2) { display: none; }
  .page--bgv .bgv-ready-table__mobile-email {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: var(--ink-muted);
    font-size: 10.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .page--bgv .bgv-ready-table .js-bgv-start {
    min-width: 112px;
  }
}

@media (max-width: 520px) {
  .page--bgv .bgv-ready-dialog__table-wrap { max-height: calc(100dvh - 286px); }
  .page--bgv .bgv-ready-table__candidate-col { width: 48%; }
  .page--bgv .bgv-ready-table__designation-col { width: 0; }
  .page--bgv .bgv-ready-table__action-col { width: 122px; }
  .page--bgv .bgv-ready-table th:nth-child(3),
  .page--bgv .bgv-ready-table td:nth-child(3) { display: none; }
  .page--bgv .bgv-ready-table thead th,
  .page--bgv .bgv-ready-table tbody td { padding-inline: 10px; }
  .page--bgv .bgv-case-pagination,
  .page--bgv .bgv-ready-dialog__pagination {
    align-items: stretch;
    flex-direction: column;
  }
  .page--bgv .bgv-pagination__actions { width: 100%; }
  .page--bgv .bgv-pagination__actions button { flex: 1; }
}

/* Settings help stays available without competing with connection status
   and account actions. Operational content is visible; setup detail opens
   only when someone explicitly asks for it. */
.settings-disclosure--technical { margin-top: 16px; }
.settings-disclosure--technical > summary {
  display: inline-flex;
  min-height: 32px;
  padding: 4px 0;
  align-items: center;
  gap: 7px;
  color: var(--ink-600);
  font-size: 13px;
  font-weight: 650;
  list-style: none;
}
.settings-disclosure--technical > summary::-webkit-details-marker,
.settings-help-disclosure > summary::-webkit-details-marker { display: none; }
.settings-disclosure--technical > summary::before {
  width: 7px;
  height: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  content: "";
  transform: rotate(-45deg);
  transition: transform 180ms ease;
}
.settings-disclosure--technical[open] > summary::before { transform: rotate(45deg) translate(-1px, -1px); }
.settings-technical-detail:not(:empty) {
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--brick-border);
  color: var(--brick-ink);
  background: var(--brick-bg);
  font-family: var(--font-mono);
  font-size: 12px;
  line-height: 1.5;
}
.settings-primary-purpose {
  display: flex;
  margin: 16px 0 0;
  padding-top: 14px;
  align-items: baseline;
  gap: 10px;
  border-top: 1px solid var(--rule);
  color: var(--ink-600);
  font-size: 13px;
  line-height: 1.5;
}
.settings-primary-workspace .status-text {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.45;
}
.settings-primary-workspace > #connection-detail:not(:empty) {
  margin: 7px 0 0;
  padding: 0;
  border: 0;
  color: var(--ink-muted);
  background: transparent;
  font-family: var(--font-body);
  font-size: 13px;
  line-height: 1.5;
}
.settings-primary-purpose strong {
  flex: 0 0 auto;
  color: var(--ink-muted);
  font-size: 11px;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.settings-primary-workspace .settings-help-disclosure__body { grid-template-columns: 1fr; }
.settings-help-disclosure {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--rule);
}
.settings-help-disclosure > summary {
  display: inline-flex;
  min-height: 30px;
  padding: 3px 0;
  align-items: center;
  gap: 7px;
  color: var(--ink-600);
  font-size: 13px;
  font-weight: 650;
  list-style: none;
  cursor: pointer;
}
.settings-help-disclosure > summary::after {
  color: var(--ink-muted);
  content: "+";
  font-family: var(--font-mono);
  font-size: 13px;
}
.settings-help-disclosure[open] > summary::after { content: "−"; }
.settings-help-disclosure > summary:hover { color: var(--ink); }
.settings-help-disclosure > summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.settings-help-disclosure__body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 8px;
  padding: 12px 14px;
  border-radius: 10px;
  color: var(--ink-600);
  background: var(--surface);
  font-size: 13px;
  line-height: 1.55;
}
.settings-help-disclosure__body strong { color: var(--ink-800); font-size: 13px; }
.settings-help-disclosure__body p { max-width: 58ch; margin: 4px 0 0; }
.settings-help-disclosure__body code { font-size: 12px; overflow-wrap: anywhere; }
.settings-help-disclosure__body ul { grid-column: 1 / -1; margin: 0; padding-left: 18px; }
.settings-help-disclosure__body li + li { margin-top: 4px; }
.settings-inbox-intro { max-width: 58ch; margin-bottom: 0; }
.settings-inbox-help { margin-top: 8px; padding-top: 0; border-top: 0; }

/* Purpose-first inbox manager. Each lane represents a different OAuth
   grant and operational job, so users choose the task before Google asks
   them to choose an account. */
.settings-inbox-manager {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--rule-mid);
  border-radius: 14px;
  background: var(--paper-raised);
  box-shadow: var(--shadow-card);
}
.settings-inbox-lane {
  display: flex;
  min-width: 0;
  min-height: 300px;
  padding: 22px;
  flex-direction: column;
}
.settings-inbox-lane + .settings-inbox-lane { border-left: 1px solid var(--rule); }
.settings-inbox-lane__header {
  display: flex;
  min-height: 74px;
  padding-bottom: 18px;
  align-items: flex-start;
  gap: 12px;
  border-bottom: 1px solid var(--rule);
}
.settings-inbox-lane__icon {
  display: inline-flex;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--rule);
  border-radius: 10px;
  color: var(--ink-700);
  background: var(--surface);
}
.settings-inbox-lane__icon svg { width: 18px; height: 18px; }
.settings-inbox-lane__header h3 {
  margin: 0 0 5px;
  color: var(--ink);
  font-size: 18px;
  line-height: 1.25;
  font-weight: 700;
  letter-spacing: -.02em;
}
.settings-inbox-lane__header p {
  max-width: 42ch;
  margin: 0;
  color: var(--ink-muted);
  font-size: 14px;
  line-height: 1.5;
}
.settings-inbox-lane__list {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}
.settings-inbox-lane__empty {
  margin: 18px 0;
  padding: 16px;
  border-radius: 9px;
  color: var(--ink-muted);
  background: var(--surface);
  font-size: 14px;
  line-height: 1.55;
}
.settings-inbox-row {
  display: grid;
  min-width: 0;
  padding: 16px 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px 14px;
  border-bottom: 1px solid var(--rule);
}
.settings-inbox-row__identity { min-width: 0; }
.settings-inbox-row__identity strong,
.settings-inbox-row__identity > span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.settings-inbox-row__identity strong {
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
}
.settings-inbox-row__identity > span { margin-top: 4px; color: var(--ink-muted); font-size: 13px; line-height: 1.45; }
.settings-inbox-row__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink-600);
  font-size: 13px;
  font-weight: 650;
  white-space: nowrap;
}
.settings-inbox-row__status::before {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green-ink);
  content: "";
}
.settings-inbox-row__status.is-warning { color: var(--brass-ink); }
.settings-inbox-row__status.is-warning::before { background: var(--brass-ink); }
.settings-inbox-row__warning {
  grid-column: 1 / -1;
  color: var(--brick-ink);
  font-size: 12px;
  line-height: 1.45;
}
.settings-inbox-row__toggle { margin: 0; }
.settings-inbox-row__toggle label { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.settings-inbox-row__toggle-label { color: var(--ink-muted); font-size: 13px; font-weight: 650; }
.settings-inbox-row__actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; }
.settings-inbox-row__actions .btn--sm { min-height: 34px; padding: 6px 10px; font-size: 13px; }
.settings-inbox-lane__connect {
  min-height: 40px;
  margin-top: 18px;
  align-self: flex-start;
  padding-inline: 16px;
  font-size: 13px;
}
.settings-inbox-manager__footer {
  display: flex;
  padding: 14px 18px;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--rule);
  color: var(--ink-muted);
  background: var(--surface);
  font-size: 13px;
  line-height: 1.45;
}
.settings-inbox-manager__footer .settings-inbox-help { flex: 0 0 auto; margin: 0; }
.settings-inbox-manager__footer .settings-help-disclosure > summary { min-height: 28px; padding: 0; font-size: 13px; }
.settings-inbox-manager__footer .settings-help-disclosure__body { min-width: 330px; }

@media (max-width: 720px) {
  .settings-help-disclosure__body { grid-template-columns: 1fr; }
  .settings-primary-purpose { align-items: flex-start; flex-direction: column; gap: 4px; }
  .settings-inbox-manager { grid-template-columns: 1fr; }
  .settings-inbox-lane { min-height: 0; padding: 18px; }
  .settings-inbox-lane + .settings-inbox-lane { border-top: 1px solid var(--rule); border-left: 0; }
  .settings-inbox-manager__footer { align-items: flex-start; flex-direction: column; }
  .settings-inbox-manager__footer .settings-help-disclosure__body { min-width: 0; }
}

/* Candidate employment sequence -----------------------------------------
   This is a compact branch in the form, not a second content card. The
   control states the decision in plain language and leaves the employment
   fields as the visual focus. */
.bgv-public .bgv-employment-skip {
  display: block;
  max-width: 520px;
  margin: 0 0 26px;
  padding: 13px 15px;
  border: 1px solid var(--bgvf-border-strong);
  border-radius: var(--radius);
  background: var(--bgvf-surface-soft);
  box-shadow: none;
}
.bgv-public .bgv-employment-skip label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  color: var(--bgvf-ink);
  font-size: var(--text-base);
  font-weight: 650;
  line-height: 1.35;
  cursor: pointer;
}
.bgv-public .bgv-employment-skip input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  margin: 0;
  accent-color: var(--bgvf-ink);
}
.bgv-public .bgv-employment-skip .field__hint {
  margin: 5px 0 0 28px;
  color: var(--bgvf-muted);
  font-size: var(--text-sm);
  line-height: 1.45;
}

.bgv-public .bgv-job-actions {
  display: grid;
  grid-template-columns: auto auto minmax(220px, 1fr);
  align-items: center;
  gap: 8px;
  margin-top: 34px;
  padding: 18px 0 2px;
  border-top: 1px solid var(--bgvf-border);
}
.bgv-public .bgv-job-actions [data-add-employment] {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding-inline: 14px;
  border-color: var(--bgvf-border-strong);
  background: var(--bgvf-surface);
  font-weight: 650;
}
.bgv-public .bgv-job-actions [data-add-employment] > span {
  font-size: 17px;
  font-weight: 450;
  line-height: 1;
}
.bgv-public .bgv-job-actions [data-remove-employment] {
  justify-self: start;
  min-height: 40px;
  padding-inline: 11px;
  color: var(--bgvf-muted);
}

/* BGV field semantics ------------------------------------------------------
   Number inputs represent quantities, but keep the same calm field surface
   as every other control. Browser steppers are hidden because they invite
   accidental salary changes and add no value for large monetary amounts. */
.bgv-public input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
  font-variant-numeric: tabular-nums;
}

.bgv-public input[type="number"]::-webkit-inner-spin-button,
.bgv-public input[type="number"]::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
  appearance: none;
}

/* Legal consent is one deliberate action, not a loose checkbox followed by
   text. The whole row remains the hit target while the control stays visually
   familiar and keyboard focus remains explicit. */
.bgv-public .field--consent,
.bgv-public .bgv-employment-skip {
  margin: 16px 0 28px;
  padding: 0;
  overflow: hidden;
  border-color: var(--rule-strong);
  background: var(--paper);
  box-shadow: 0 1px 2px color-mix(in oklab, var(--ink) 5%, transparent);
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.bgv-public .field--consent > label,
.bgv-public .bgv-employment-skip > label {
  min-height: 68px;
  margin: 0;
  padding: 16px 18px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 13px;
  color: var(--ink-800);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.4;
  cursor: pointer;
}

.bgv-public .field--consent input[type="checkbox"],
.bgv-public .bgv-employment-skip input[type="checkbox"] {
  width: 22px;
  height: 22px;
  min-height: 0;
  margin: 0;
  padding: 0;
  display: grid;
  place-content: center;
  appearance: none;
  border: 1.5px solid var(--ink-400);
  border-radius: 6px;
  background: var(--paper-raised);
  box-shadow: inset 0 1px 1px color-mix(in oklab, var(--ink) 5%, transparent);
  cursor: pointer;
  transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}

.bgv-public .field--consent input[type="checkbox"]::before,
.bgv-public .bgv-employment-skip input[type="checkbox"]::before {
  width: 11px;
  height: 11px;
  content: "";
  background: var(--paper-raised);
  clip-path: polygon(14% 44%, 0 59%, 40% 100%, 100% 18%, 84% 4%, 38% 70%);
  opacity: 0;
  transform: scale(.94);
  transition: opacity 140ms ease, transform 160ms var(--bgvf-ease-out);
}

.bgv-public .field--consent input[type="checkbox"]:checked,
.bgv-public .bgv-employment-skip input[type="checkbox"]:checked {
  border-color: var(--ink-800);
  background: var(--ink-800);
  box-shadow: none;
}

.bgv-public .field--consent input[type="checkbox"]:checked::before,
.bgv-public .bgv-employment-skip input[type="checkbox"]:checked::before {
  opacity: 1;
  transform: scale(1);
}

.bgv-public .field--consent:has(input:checked),
.bgv-public .bgv-employment-skip:has(input:checked) {
  border-color: color-mix(in oklab, var(--ink-800) 45%, var(--rule));
  background: color-mix(in oklab, var(--surface) 48%, var(--paper));
}

.bgv-public .field--consent:has(input:focus-visible),
.bgv-public .bgv-employment-skip:has(input:focus-visible) {
  border-color: var(--ink-700);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--focus) 16%, transparent);
}

.bgv-public .field--consent input[type="checkbox"]:focus-visible,
.bgv-public .bgv-employment-skip input[type="checkbox"]:focus-visible { outline: none; }

.bgv-public .bgv-employment-skip {
  max-width: 520px;
  margin: 0 0 26px;
}

.bgv-public .bgv-employment-skip > label { min-height: 78px; }
.bgv-public .bgv-choice-copy { min-width: 0; display: grid; gap: 3px; }
.bgv-public .bgv-choice-title {
  color: var(--ink-800);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.35;
}
.bgv-public .bgv-employment-skip .field__hint {
  margin: 0;
  color: var(--ink-soft);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
}

@media (hover: hover) and (pointer: fine) {
  .bgv-public .field--consent:hover,
  .bgv-public .bgv-employment-skip:hover {
    border-color: var(--ink-400);
    background: color-mix(in oklab, var(--surface) 34%, var(--paper));
  }
}

@media (max-width: 520px) {
  .bgv-public .field--consent > label,
  .bgv-public .bgv-employment-skip > label { min-height: 62px; padding: 14px; gap: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  .bgv-public .field--consent,
  .bgv-public .bgv-employment-skip,
  .bgv-public .field--consent input[type="checkbox"],
  .bgv-public .bgv-employment-skip input[type="checkbox"],
  .bgv-public .field--consent input[type="checkbox"]::before,
  .bgv-public .bgv-employment-skip input[type="checkbox"]::before { transition: none; }
}
.bgv-public .bgv-job-actions__note {
  max-width: 38ch;
  margin: 0 0 0 auto;
  text-align: right;
  font-size: var(--text-sm);
  line-height: 1.45;
  color: var(--bgvf-muted);
}

@media (max-width: 680px) {
  .bgv-public .bgv-job-actions { grid-template-columns: 1fr; align-items: start; }
  .bgv-public .bgv-job-actions [data-add-employment],
  .bgv-public .bgv-job-actions [data-remove-employment] { justify-self: stretch; justify-content: center; }
  .bgv-public .bgv-job-actions__note { margin: 6px 0 0; text-align: left; }
}

/* Modal scroll ownership -------------------------------------------------
   A modal owns the viewport while it is open. Hiding the page scroll is
   what prevents the background thumb from appearing beside a drawer's own
   thumb; the stable root gutter above keeps the page from shifting. */
html.has-open-dialog,
body.has-open-dialog {
  overflow: hidden;
  overscroll-behavior: none;
}

/* Centered legacy dialogs that still scroll their shell keep a single,
   narrow gutter. The track is inset far enough to clear every rounded
   corner instead of beginning at the dialog's top edge. */
dialog:not(#candidate-drawer):not(#bgv-drawer):not(#hireai-dialog):not(.bgv-manual-dialog) {
  scrollbar-gutter: stable;
}
dialog::-webkit-scrollbar { width: 9px; height: 9px; }
dialog::-webkit-scrollbar-track { margin-block: 24px; background: transparent; }
dialog::-webkit-scrollbar-thumb {
  min-height: 44px;
  border: 3px solid transparent;
  border-radius: var(--radius-pill);
  background: var(--rule-mid) content-box;
}

/* Add/edit role: fixed header and actions, one contained scrolling body. */
dialog#role-form-dialog {
  width: min(760px, calc(100vw - 32px));
  height: min(780px, calc(100dvh - 32px));
  max-height: none;
  padding: 0;
  overflow: hidden;
  flex-direction: column;
  border-radius: 22px;
}
dialog#role-form-dialog[open] { display: flex; }
.dialog-shell__header {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 30px 20px;
  border-bottom: 1px solid var(--rule);
  background: var(--paper-raised);
}
.dialog-shell__header #role-form-title { margin: 0; font-size: 24px; letter-spacing: -.035em; }
.dialog-shell__header p {
  max-width: 52ch;
  margin: 5px 0 0;
  color: var(--ink-muted);
  font-size: 12px;
}
.dialog-shell__close {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 10px;
  color: var(--ink-soft);
  background: var(--surface);
  box-shadow: inset 0 0 0 1px var(--rule);
}
.dialog-shell__close:hover { color: var(--ink); background: var(--surface-hover); box-shadow: inset 0 0 0 1px var(--rule-mid); }
.dialog-shell__body {
  min-height: 0;
  flex: 1 1 auto;
  padding: 24px 30px 6px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.dialog-shell__body::-webkit-scrollbar { width: 9px; }
.dialog-shell__body::-webkit-scrollbar-track { margin-block: 10px; }

.role-entry-choice {
  display: grid;
  grid-template-columns: minmax(180px, .72fr) minmax(360px, 1.28fr);
  align-items: center;
  gap: 20px;
  margin-bottom: 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--rule);
}

.role-entry-choice__copy { min-width: 0; }
.role-entry-choice__eyebrow {
  display: block;
  margin-bottom: 4px;
  color: var(--ink-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.role-entry-choice h4 {
  margin: 0;
  font-size: 15px;
  font-weight: 650;
  line-height: 1.35;
  letter-spacing: -.015em;
  text-wrap: balance;
}

.role-entry-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
  padding: 4px;
  border: 1px solid var(--rule);
  border-radius: 14px;
  background: var(--surface);
}

.role-entry-tab {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: var(--ink-muted);
  background: transparent;
  box-shadow: none;
  text-align: left;
  transform: none;
  transition: color var(--dur-hover) ease, background-color var(--dur-hover) ease,
    border-color var(--dur-hover) ease, box-shadow var(--dur-hover) ease;
}
.role-entry-tab > svg {
  width: 34px;
  height: 34px;
  padding: 8px;
  border-radius: 9px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  background: color-mix(in oklab, var(--ink) 5%, transparent);
}
.role-entry-tab > span { display: grid; min-width: 0; gap: 2px; }
.role-entry-tab strong { color: inherit; font-size: 13px; font-weight: 700; line-height: 1.2; }
.role-entry-tab small {
  overflow: hidden;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 450;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.role-entry-tab.is-active {
  color: var(--ink);
  border-color: var(--rule-mid);
  background: var(--paper-raised);
  box-shadow: var(--shadow-sm);
}
.role-entry-tab.is-active > svg { color: var(--paper-raised); background: var(--ink); }
.role-entry-tab:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

@media (hover: hover) and (pointer: fine) {
  .role-entry-tab:not(.is-active):hover { color: var(--ink); background: var(--surface-hover); }
  .dialog-shell__body .dropzone:not(.is-loading):hover {
    border-color: var(--ink-soft);
    background: color-mix(in oklab, var(--surface) 82%, var(--paper-raised));
  }
}

/* Candidate document upload ------------------------------------------------
   Upload is an occasional, consequential action: motion clarifies the live
   request and its result without moving the document label or file control. */
.bgv-public .file-row {
  position: relative;
  overflow: hidden;
  transition: background-color 180ms var(--bgvf-ease-out);
}

.bgv-public .file-row__identity {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.bgv-public .file-row__filename {
  max-width: min(100%, 34rem);
  overflow: hidden;
  color: var(--ink-soft);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 500;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bgv-public .file-row__actions {
  display: grid;
  grid-template-columns: minmax(130px, auto) 148px;
  gap: 12px;
  align-items: center;
}

.bgv-public .bgv-doc-row__state {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink-soft);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  line-height: 1.25;
  white-space: nowrap;
}

.bgv-upload-status__icon {
  position: relative;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--surface);
  color: var(--ink-600);
  transition:
    background-color 180ms var(--bgvf-ease-out),
    color 180ms var(--bgvf-ease-out),
    opacity 180ms var(--bgvf-ease-out),
    transform 220ms var(--bgvf-ease-out);
}

.bgv-upload-status__file,
.bgv-upload-status__check {
  position: absolute;
  width: 17px;
  height: 17px;
  transition:
    opacity 160ms var(--bgvf-ease-out),
    transform 220ms var(--bgvf-ease-out);
}

.bgv-upload-status__check {
  opacity: 0;
  transform: scale(.94);
}

.bgv-upload-status__scan {
  position: absolute;
  left: 6px;
  right: 6px;
  top: 50%;
  height: 1px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0;
  transform: translateY(-7px);
}

.bgv-public .bgv-upload-control {
  position: relative;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  border: 1px solid var(--rule-strong);
  border-radius: 12px;
  background: var(--paper-raised);
  color: var(--ink-800);
  box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
  cursor: pointer;
  font-size: var(--text-sm);
  font-weight: 650;
  line-height: 1;
  white-space: nowrap;
  transition:
    border-color 140ms ease,
    background-color 140ms ease,
    box-shadow 140ms ease,
    transform 140ms var(--bgvf-ease-out);
}

.bgv-public .bgv-upload-control > svg {
  width: 17px;
  height: 17px;
  flex: none;
}

.bgv-public .bgv-upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

.bgv-public .bgv-upload-control:focus-within {
  outline: 3px solid color-mix(in srgb, var(--bgvf-accent) 18%, transparent);
  outline-offset: 2px;
  border-color: var(--ink-700);
}

.bgv-upload-progress {
  position: absolute;
  z-index: 1;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms var(--bgvf-ease-out);
}

.bgv-upload-progress > span {
  display: block;
  width: 38%;
  height: 100%;
  border-radius: 999px;
  background: var(--ink-800);
  transform: translateX(-115%);
}

.bgv-public .file-row.is-uploading {
  background: color-mix(in srgb, var(--surface) 72%, transparent);
}

.bgv-public .file-row.is-uploading .bgv-upload-status__icon {
  background: var(--ink-800);
  color: var(--paper-raised);
}

.bgv-public .file-row.is-uploading .bgv-upload-status__scan {
  opacity: .8;
  animation: bgv-document-scan 900ms cubic-bezier(0.77, 0, 0.175, 1) infinite alternate;
}

.bgv-public .file-row.is-uploading .bgv-upload-control {
  pointer-events: none;
  color: var(--ink-soft);
  background: var(--surface);
  box-shadow: none;
}

.bgv-public .file-row.is-uploading .bgv-upload-progress { opacity: 1; }
.bgv-public .file-row.is-uploading .bgv-upload-progress > span {
  animation: bgv-upload-progress 1100ms linear infinite;
}

.bgv-public .file-row.is-uploaded .bgv-upload-status__icon {
  background: color-mix(in srgb, var(--green-bg) 88%, var(--paper));
  color: var(--green-ink);
}

.bgv-public .file-row.is-uploaded:not(.is-uploading):not(.has-upload-error) .bgv-upload-status__file {
  opacity: 0;
  transform: scale(.94);
}

.bgv-public .file-row.is-uploaded:not(.is-uploading):not(.has-upload-error) .bgv-upload-status__check {
  opacity: 1;
  transform: scale(1);
}

.bgv-public .file-row.is-upload-complete .bgv-upload-status__icon {
  animation: bgv-upload-confirm 240ms var(--bgvf-ease-out) both;
}

.bgv-public .file-row.has-upload-error .bgv-doc-row__state { color: var(--brick-ink); }
.bgv-public .file-row.has-upload-error .bgv-upload-status__icon {
  background: var(--brick-bg);
  color: var(--brick-ink);
}

@keyframes bgv-document-scan {
  from { transform: translateY(-7px); }
  to { transform: translateY(7px); }
}

@keyframes bgv-upload-progress {
  from { transform: translateX(-115%); }
  to { transform: translateX(300%); }
}

@keyframes bgv-upload-confirm {
  from { opacity: .64; transform: scale(.94); }
  to { opacity: 1; transform: scale(1); }
}

@media (hover: hover) and (pointer: fine) {
  .bgv-public .bgv-upload-control:hover {
    border-color: var(--ink-700);
    background: var(--paper);
    box-shadow: 0 5px 14px rgba(15, 23, 42, .08);
    transform: translateY(-1px);
  }
  .bgv-public .bgv-upload-control:active {
    box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
    transform: scale(.98);
  }
}

@media (max-width: 720px) {
  .bgv-public .file-row__actions {
    width: 100%;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .bgv-public .bgv-upload-control { min-width: 142px; }
}

@media (max-width: 460px) {
  .bgv-public .file-row__actions {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .bgv-public .bgv-upload-control { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .bgv-public .file-row,
  .bgv-public .bgv-upload-control,
  .bgv-upload-status__icon,
  .bgv-upload-status__file,
  .bgv-upload-status__check,
  .bgv-upload-progress { transition-duration: 160ms; }
  .bgv-public .file-row.is-uploading .bgv-upload-status__scan,
  .bgv-public .file-row.is-uploading .bgv-upload-progress > span,
  .bgv-public .file-row.is-upload-complete .bgv-upload-status__icon { animation: none; }
  .bgv-public .file-row.is-uploading .bgv-upload-status__scan { opacity: .55; transform: none; }
  .bgv-public .file-row.is-uploading .bgv-upload-progress > span { opacity: .65; transform: none; }
  .bgv-public .bgv-upload-control:hover,
  .bgv-public .bgv-upload-control:active,
  .bgv-upload-status__icon,
  .bgv-upload-status__file,
  .bgv-upload-status__check { transform: none; }
}

.role-entry-panel[hidden],
#role-submit-btn[hidden],
.role-import-note[hidden],
.role-upload-error[hidden] { display: none !important; }

.role-entry-panel:not([hidden]) { animation: role-entry-panel-in 220ms var(--ease-standard) both; }

.dialog-shell__body .dropzone {
  min-height: 320px;
  margin: 0;
  padding: 34px 24px;
  display: grid;
  place-items: center;
  border-color: var(--rule-mid);
  background: var(--surface);
  transition: border-color var(--dur-hover) ease, background-color var(--dur-hover) ease;
}
.dialog-shell__body .dropzone:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.dialog-shell__body .dropzone.is-dragover { border-color: var(--ink); background: var(--paper-raised); }

.dropzone__idle {
  display: grid;
  justify-items: center;
  gap: 15px;
  max-width: 440px;
}
.dropzone__icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  border: 1px solid var(--rule-mid);
  border-radius: 15px;
  color: var(--ink);
  background: var(--paper-raised);
  box-shadow: var(--shadow-sm);
}
.dropzone__icon svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dialog-shell__body .dropzone__label {
  display: grid;
  justify-items: center;
  color: var(--ink-700);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.45;
}
.dropzone__action { color: var(--ink); text-decoration: underline; text-decoration-color: var(--rule-strong); text-underline-offset: 3px; }
.dialog-shell__body .dropzone__hint { margin-top: 9px; font-size: 11px; font-weight: 450; }

.role-upload-panel__note {
  margin: 12px 0 0;
  color: var(--ink-muted);
  font-size: 12px;
  line-height: 1.45;
  text-align: center;
}
.role-upload-error {
  margin: 12px 0 0;
  padding: 10px 12px;
  border: 1px solid var(--brick-border);
  border-radius: 9px;
  color: var(--brick-ink);
  background: var(--brick-bg);
  font-size: 12px;
  line-height: 1.45;
}

.jd-upload-progress {
  display: none;
  justify-items: center;
  gap: 15px;
}
.dropzone.is-loading .dropzone__idle { display: none; }
.dropzone.is-loading .jd-upload-progress { display: grid; }
.jd-upload-progress__visual {
  position: relative;
  width: 112px;
  height: 128px;
  display: grid;
  place-items: center;
}
.jd-upload-progress__float { animation: jd-upload-float 1800ms var(--ease-standard) infinite alternate; }
.jd-upload-progress__sheet {
  position: relative;
  width: 82px;
  height: 108px;
  padding: 25px 13px 12px;
  overflow: hidden;
  border: 1px solid var(--rule-mid);
  border-radius: 7px;
  background: var(--paper-raised);
  box-shadow: 0 14px 30px color-mix(in oklab, var(--ink) 12%, transparent);
  animation: jd-upload-sheet-in var(--dur-enter) var(--ease-standard) both;
}
.jd-upload-progress__sheet i,
.jd-upload-progress__sheet b {
  display: block;
  width: 100%;
  height: 4px;
  margin-bottom: 8px;
  border-radius: 99px;
  background: color-mix(in oklab, var(--ink) 14%, var(--surface));
  animation: jd-upload-line 1100ms var(--ease-standard) infinite alternate;
}
.jd-upload-progress__sheet b { width: 48%; height: 5px; background: color-mix(in oklab, var(--ink) 54%, var(--surface)); }
.jd-upload-progress__sheet i:nth-of-type(2) { width: 82%; animation-delay: 100ms; }
.jd-upload-progress__sheet i:nth-of-type(3) { width: 62%; animation-delay: 180ms; }
.jd-upload-progress__sheet i:nth-of-type(4) { animation-delay: 240ms; }
.jd-upload-progress__sheet i:nth-of-type(5) { width: 74%; animation-delay: 320ms; }
.jd-upload-progress__fold {
  position: absolute;
  top: 0;
  right: 0;
  width: 20px;
  height: 20px;
  border-bottom: 1px solid var(--rule-mid);
  border-left: 1px solid var(--rule-mid);
  background: var(--surface);
}
.jd-upload-progress__scan {
  position: absolute;
  z-index: 2;
  top: -18px;
  left: 0;
  width: 100%;
  height: 18px;
  background: linear-gradient(to bottom, transparent, color-mix(in oklab, var(--ink) 10%, transparent), transparent);
  animation: jd-upload-scan 1300ms linear infinite;
}
.jd-upload-progress__spark {
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--ink);
  opacity: .18;
  animation: jd-upload-spark 1000ms var(--ease-standard) infinite alternate;
}
.jd-upload-progress__spark--one { top: 25px; left: 4px; }
.jd-upload-progress__spark--two { right: 5px; bottom: 23px; animation-delay: 180ms; }
.jd-upload-progress__copy { display: grid; justify-items: center; gap: 3px; text-align: center; }
.jd-upload-progress__copy strong {
  max-width: 320px;
  overflow: hidden;
  font-size: 14px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.jd-upload-progress__copy span { color: var(--ink-muted); font-size: 12px; }
.jd-upload-progress__bar {
  width: 160px;
  height: 3px;
  overflow: hidden;
  border-radius: 99px;
  background: color-mix(in oklab, var(--ink) 10%, transparent);
}
.jd-upload-progress__bar span {
  display: block;
  width: 42%;
  height: 100%;
  border-radius: inherit;
  background: var(--ink);
  animation: jd-upload-progress 1100ms var(--ease-standard) infinite;
}

.role-import-note {
  display: grid;
  grid-template-columns: 30px 1fr;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
  padding: 11px 12px;
  border: 1px solid var(--green-border);
  border-radius: 10px;
  color: var(--green-ink);
  background: var(--green-bg);
}
.role-import-note > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  color: var(--paper-raised);
  background: var(--green-ink);
  font-size: 13px;
  font-weight: 800;
}
.role-import-note p { display: grid; gap: 1px; margin: 0; }
.role-import-note strong { font-size: 13px; }
.role-import-note small { color: var(--ink-muted); font-size: 11px; }

@keyframes role-entry-panel-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes jd-upload-sheet-in {
  from { opacity: 0; transform: translateY(8px) scale(.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes jd-upload-float {
  from { transform: translateY(0); }
  to { transform: translateY(-4px); }
}
@keyframes jd-upload-line {
  from { opacity: .42; }
  to { opacity: .88; }
}
@keyframes jd-upload-scan {
  from { transform: translateY(-100%); }
  to { transform: translateY(700%); }
}
@keyframes jd-upload-spark {
  from { opacity: .08; transform: scale(.92); }
  to { opacity: .25; transform: scale(1.08); }
}
@keyframes jd-upload-progress {
  from { transform: translateX(-115%); }
  to { transform: translateX(250%); }
}

/* Role intake is deliberately utilitarian: a compact method switch and a
   file row, not a choice-card grid sitting above a billboard-sized dropzone. */
dialog#role-form-dialog[data-entry-mode="upload"] {
  height: min(540px, calc(100dvh - 32px));
}

.role-entry-choice {
  display: block;
  margin: 0 0 24px;
  padding: 0;
  border-bottom: 1px solid var(--rule);
}

.role-entry-tabs {
  display: flex;
  width: max-content;
  gap: 24px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.role-entry-tab {
  display: block;
  min-height: 40px;
  padding: 0 1px 11px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--ink-muted);
  background: transparent;
  box-shadow: none;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
}
.role-entry-tab.is-active {
  color: var(--ink);
  border-color: var(--ink);
  background: transparent;
  box-shadow: none;
}

.dialog-shell__body .dropzone {
  min-height: 148px;
  padding: 22px;
  place-items: stretch;
  border: 1px solid var(--rule-mid);
  border-radius: 12px;
  background: var(--paper-raised);
  text-align: left;
}
.dialog-shell__body .dropzone.is-dragover {
  border-color: var(--ink);
  background: var(--surface);
}

.dropzone__idle {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  justify-items: stretch;
  width: 100%;
  max-width: none;
  gap: 14px;
}
.dropzone__icon {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  box-shadow: none;
}
.dropzone__icon svg { width: 21px; height: 21px; }
.dialog-shell__body .dropzone__label {
  display: grid;
  justify-items: start;
  gap: 3px;
  font-size: 13px;
  line-height: 1.35;
}
.dialog-shell__body .dropzone__label strong { color: var(--ink); font-size: 14px; }
.dialog-shell__body .dropzone__hint { margin: 0; color: var(--ink-muted); font-size: 11px; }
.dropzone__action {
  padding: 9px 13px;
  border: 1px solid var(--rule-mid);
  border-radius: 9px;
  color: var(--ink);
  background: var(--surface);
  font-size: 12px;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}

.role-upload-guidance {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  gap: 18px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid var(--rule);
  font-size: 11px;
  line-height: 1.5;
}
.role-upload-guidance strong { color: var(--ink); font-weight: 650; }
.role-upload-guidance span { max-width: 62ch; color: var(--ink-muted); }

.jd-upload-progress {
  display: none;
  grid-template-columns: 48px minmax(0, 1fr);
  align-items: center;
  justify-items: stretch;
  width: 100%;
  gap: 16px;
}
.dropzone.is-loading .jd-upload-progress { display: grid; }
.jd-upload-progress__visual {
  width: 48px;
  height: 60px;
}
.jd-upload-progress__sheet {
  width: 38px;
  height: 50px;
  padding: 16px 7px 7px;
  border-radius: 5px;
  box-shadow: var(--shadow-sm);
}
.jd-upload-progress__sheet i {
  height: 3px;
  margin-bottom: 5px;
  animation: none;
}
.jd-upload-progress__fold { width: 11px; height: 11px; }
.jd-upload-progress__scan {
  height: 12px;
  opacity: 1;
  animation-duration: 1050ms;
}
.dropzone[data-upload-stage="checking"] .jd-upload-progress__scan {
  opacity: 0;
  animation-play-state: paused;
}
.jd-upload-progress__copy {
  justify-items: start;
  gap: 4px;
  min-width: 0;
  text-align: left;
}
.jd-upload-progress__copy strong {
  max-width: 100%;
  font-size: 13px;
}
.jd-upload-progress__copy > span { font-size: 11px; }

.jd-upload-stages {
  display: flex;
  gap: 18px;
  margin: 8px 0 0;
  padding: 0;
  color: var(--ink-soft);
  font-size: 10px;
  list-style: none;
}
.jd-upload-stages li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: color var(--dur-hover) ease;
}
.jd-upload-stages li i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--rule-strong);
  transform: scale(1);
  transition: background-color var(--dur-hover) ease, transform var(--dur-hover) var(--ease-standard);
}
.jd-upload-stages li.is-active { color: var(--ink); }
.jd-upload-stages li.is-active i { background: var(--ink); transform: scale(1.18); }
.jd-upload-stages li.is-complete { color: var(--ink-muted); }
.jd-upload-stages li.is-complete i { background: var(--green-ink); }

@media (prefers-reduced-motion: reduce) {
  .role-entry-panel:not([hidden]) { animation: role-entry-panel-fade 160ms var(--ease-standard) both; }
  .jd-upload-progress__float,
  .jd-upload-progress__sheet,
  .jd-upload-progress__scan,
  .jd-upload-progress__spark,
  .jd-upload-progress__bar span { animation: none; transform: none; }
  .jd-upload-progress__sheet i,
  .jd-upload-progress__sheet b { animation: jd-upload-line 1100ms var(--ease-standard) infinite alternate; }
}

@keyframes role-entry-panel-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

.dialog-shell__body #role-form > .field:last-child { margin-bottom: 18px; }
.dialog-shell__footer {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 30px calc(16px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--rule);
  background: var(--paper-raised);
}

/* Compose email: the message is the only long region. The dialog shell and
   page no longer scroll behind it, leaving exactly one inset scrollbar. */
dialog#compose-email-dialog {
  width: min(720px, calc(100vw - 32px));
  height: min(720px, calc(100dvh - 40px));
  max-height: none;
  padding: 0;
  overflow: hidden;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  border-radius: 22px;
}
dialog#compose-email-dialog[open] { display: grid; }
dialog#compose-email-dialog .compose-email__header {
  margin: 0;
  padding: 24px 28px 18px;
  border-bottom: 1px solid var(--rule);
}
dialog#compose-email-dialog .compose-email__fields {
  margin: 0;
  padding: 18px 28px 16px;
}
dialog#compose-email-dialog .compose-email__letter {
  min-height: 0;
  margin: 0 28px;
  display: flex;
  flex-direction: column;
}
dialog#compose-email-dialog .compose-email__letter-meta { flex: 0 0 auto; }
dialog#compose-email-dialog .compose-email__letter-body {
  min-height: 0;
  max-height: none;
  flex: 1 1 auto;
  margin: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
dialog#compose-email-dialog .template-editor__preview-note { margin: 10px 28px 0; }
dialog#compose-email-dialog .compose-email__footer {
  margin: 0;
  padding: 14px 28px 18px;
  border-top: 1px solid var(--rule);
}

/* Drawers already have dedicated bodies; keep their single thumb visually
   away from the shell edge and clear of the fixed header/footer. */
dialog#candidate-drawer > .drawer__body,
dialog#bgv-drawer > .drawer__body {
  scrollbar-gutter: stable;
}
dialog#candidate-drawer > .drawer__body::-webkit-scrollbar-track,
dialog#bgv-drawer > .drawer__body::-webkit-scrollbar-track { margin-block: 12px; }

@media (max-width: 640px) {
  dialog#role-form-dialog,
  dialog#compose-email-dialog {
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
    border-radius: 16px;
  }
  dialog#role-form-dialog[data-entry-mode="upload"] { height: min(520px, calc(100dvh - 16px)); }
  .dialog-shell__header,
  dialog#compose-email-dialog .compose-email__header { padding-inline: 20px; }
  .dialog-shell__body,
  .dialog-shell__footer,
  dialog#compose-email-dialog .compose-email__fields,
  dialog#compose-email-dialog .compose-email__footer { padding-inline: 20px; }
  .role-entry-choice { margin-bottom: 20px; }
  .role-entry-tabs { width: 100%; gap: 20px; }
  .role-entry-tab { min-height: 40px; }
  .dialog-shell__body .dropzone { min-height: 150px; padding-inline: 16px; }
  .dropzone__idle { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 10px; }
  .dropzone__icon { width: 40px; height: 40px; }
  .dropzone__action { padding-inline: 10px; }
  .role-upload-guidance { grid-template-columns: 1fr; gap: 4px; }
  dialog#compose-email-dialog .compose-email__letter { margin-inline: 20px; }
}

/* Candidate declaration document ----------------------------------------
   The source CDF is a six-page US Letter form. The preview deliberately
   uses the same paper geometry and the same ruled-table language so the
   screen, browser print dialog and Save as PDF result stay in sync. */
.bgv-reference-intro {
  margin-bottom: 8px;
  padding: 0 0 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid var(--rule);
}
.bgv-reference-intro p { margin: 0; color: var(--ink-700); font-size: var(--text-sm); line-height: 1.5; }
.bgv-reference-intro span { flex: none; color: var(--green-ink); font-size: var(--text-xs); font-weight: 650; }
.bgv-reference-list { display: grid; }
.bgv-public .bgv-ref-block.bgv-reference-card {
  margin: 0;
  padding: 24px 0 26px;
  border: 0;
  border-bottom: 1px solid var(--rule);
  border-radius: 0;
  background: transparent;
}
.bgv-reference-card__header {
  margin-bottom: 20px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 0;
}
.bgv-reference-card__header > div { display: flex; align-items: center; gap: 9px; }
.bgv-reference-card__header span { color: var(--ink-900); font-size: var(--text-md); font-weight: 700; }
.bgv-reference-card__header strong {
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--ink-soft);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.bgv-public .bgv-reference-card__header button {
  all: unset;
  box-sizing: border-box;
  padding: 4px 0;
  color: var(--brick-ink);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 650;
  cursor: pointer;
}
.bgv-public .bgv-reference-card__header button:focus-visible {
  outline: 2px solid var(--brick-ink);
  outline-offset: 4px;
}
.bgv-reference-employer {
  margin-bottom: 2px !important;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.bgv-reference-employer select { background-color: var(--paper-raised); }
.bgv-reference-actions {
  margin-top: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.bgv-reference-actions button { display: inline-flex; align-items: center; gap: 8px; }
.bgv-reference-actions button > span { font-size: 18px; line-height: 1; }
.bgv-reference-actions > span { color: var(--ink-soft); font-size: var(--text-xs); }

.bgv-public.is-preview-step .bgv-form-panel { max-width: none; }
@media (min-width: 1041px) {
  .bgv-public.is-preview-step .bgv-public__content {
    width: min(100%, 1600px);
  }
  .bgv-public.is-preview-step .bgv-form-experience {
    grid-template-columns: minmax(330px, 0.56fr) minmax(0, 1.7fr);
  }
  .bgv-public.is-preview-step .bgv-form-overview h1 {
    max-width: 12ch;
    font-size: clamp(32px, 2.6vw, 36px);
  }
  .bgv-public.is-preview-step .bgv-form-panel { padding-inline: 20px; }
}
.bgv-public.is-preview-step .bgv-preview__toolbar {
  position: sticky;
  top: 10px;
  z-index: 3;
  padding: 12px 14px;
  border-color: var(--rule-strong);
  background: color-mix(in srgb, var(--paper-raised) 94%, transparent);
  box-shadow: 0 8px 24px rgba(17, 24, 39, 0.08);
  backdrop-filter: blur(10px);
}
.bgv-public.is-preview-step .bgv-preview__toolbar button {
  min-height: 38px;
  padding-inline: 15px;
  border: 1px solid var(--ink-900);
  background: var(--ink-900);
  color: var(--paper-raised);
}
.bgv-public.is-preview-step .bgv-preview__stage {
  max-width: 100%;
  padding: 18px;
  overflow-x: auto;
  border: 1px solid var(--ink-400);
  background: #e7e7e7;
  scrollbar-gutter: stable;
}
.cdf-document {
  width: max-content;
  margin: 0 auto;
  display: grid;
  gap: 20px;
  color: #111;
  font-family: Arial, Helvetica, sans-serif;
}
.cdf-page {
  box-sizing: border-box;
  position: relative;
  width: 816px;
  height: 1056px;
  padding: 48px 62px 42px;
  overflow: hidden;
  border: 1px solid #c9c9c9;
  background: #fff;
  color: #111;
  font-size: 12px;
  line-height: 1.35;
  box-shadow: 0 1px 2px rgba(17, 17, 17, 0.12), 0 18px 44px rgba(17, 17, 17, 0.16);
}
.cdf-page strong { color: inherit; }

/* Submission progress ----------------------------------------------------
   This appears only for the final, occasional commit. CSS owns the motion
   so it remains smooth while the browser prepares and the server freezes
   the reviewed PDF. Text changes follow real async milestones. */
.bgv-submit-progress[hidden] { display: none; }
.bgv-submit-progress {
  position: fixed;
  z-index: 80;
  inset: 0;
  display: grid;
  padding: 24px;
  place-items: center;
  opacity: 0;
  color: var(--ink);
  background: color-mix(in srgb, var(--paper) 82%, transparent);
  backdrop-filter: blur(14px) saturate(.9);
  -webkit-backdrop-filter: blur(14px) saturate(.9);
  transition: opacity 200ms var(--bgvf-ease-out);
}
.bgv-submit-progress.is-active { opacity: 1; }
.bgv-submit-progress__card {
  width: min(100%, 560px);
  min-height: 250px;
  padding: clamp(26px, 5vw, 42px);
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: center;
  gap: clamp(26px, 5vw, 42px);
  border: 1px solid var(--rule-strong);
  border-radius: 22px;
  background: color-mix(in srgb, var(--paper-raised) 97%, transparent);
  box-shadow: 0 28px 80px color-mix(in oklab, var(--ink) 18%, transparent);
  opacity: 0;
  transform: translateY(10px) scale(.97);
  transition: opacity 200ms var(--bgvf-ease-out), transform 200ms var(--bgvf-ease-out);
}
.bgv-submit-progress.is-active .bgv-submit-progress__card {
  opacity: 1;
  transform: translateY(0) scale(1);
}
.bgv-submit-progress__visual {
  position: relative;
  width: 118px;
  height: 142px;
  justify-self: center;
}
.bgv-submit-progress__sheet {
  position: absolute;
  inset: 7px 10px 7px 10px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--rule-strong);
  border-radius: 14px;
  background: var(--paper-raised);
  box-shadow: 0 14px 32px color-mix(in oklab, var(--ink) 10%, transparent);
}
.bgv-submit-progress__sheet--back {
  transform: translate(9px, -5px) rotate(4deg);
  background: var(--surface-hover);
}
.bgv-submit-progress__sheet--front {
  color: var(--ink-700);
  transform: rotate(-1.5deg);
  animation: bgv-submit-sheet 1100ms var(--bgvf-ease-out) infinite alternate;
}
.bgv-submit-progress__document {
  width: 58px;
  height: 72px;
  opacity: 1;
  transition: opacity 180ms var(--bgvf-ease-out), transform 200ms var(--bgvf-ease-out);
}
.bgv-submit-progress__scan {
  position: absolute;
  right: 15px;
  left: 15px;
  height: 2px;
  border-radius: 999px;
  background: var(--ink-700);
  box-shadow: 0 0 10px color-mix(in oklab, var(--ink) 32%, transparent);
  opacity: .72;
  transform: translateY(-42px);
  animation: bgv-submit-scan 900ms linear infinite;
}
.bgv-submit-progress__check {
  position: absolute;
  width: 52px;
  height: 52px;
  color: var(--green-ink);
  opacity: 0;
  transform: scale(.94);
  transition: opacity 180ms var(--bgvf-ease-out), transform 200ms var(--bgvf-ease-out);
}
.bgv-submit-progress[data-phase="2"] .bgv-submit-progress__sheet--front { animation: none; }
.bgv-submit-progress[data-phase="2"] .bgv-submit-progress__scan,
.bgv-submit-progress[data-phase="2"] .bgv-submit-progress__document {
  opacity: 0;
  transform: scale(.96);
}
.bgv-submit-progress[data-phase="2"] .bgv-submit-progress__check {
  opacity: 1;
  transform: scale(1);
}
.bgv-submit-progress__eyebrow {
  color: var(--ink-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.bgv-submit-progress__copy h2 {
  margin: 7px 0 0;
  color: var(--ink);
  font-size: clamp(22px, 4vw, 28px);
  font-weight: 720;
  letter-spacing: -.035em;
  line-height: 1.15;
  text-wrap: balance;
}
.bgv-submit-progress__copy > p {
  max-width: 38ch;
  margin: 10px 0 0;
  color: var(--ink-600);
  font-size: 12.5px;
  line-height: 1.55;
  text-wrap: pretty;
}
.bgv-submit-progress__steps {
  margin: 24px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  list-style: none;
}
.bgv-submit-progress__steps li {
  position: relative;
  padding-top: 10px;
  color: var(--ink-400);
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .025em;
  transition: color 180ms var(--bgvf-ease-out);
}
.bgv-submit-progress__steps li::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--rule);
  content: "";
  transition: background-color 180ms var(--bgvf-ease-out), transform 200ms var(--bgvf-ease-out);
  transform-origin: left center;
}
.bgv-submit-progress__steps li.is-current { color: var(--ink-800); }
.bgv-submit-progress__steps li.is-current::before,
.bgv-submit-progress__steps li.is-complete::before { background: var(--ink-800); }
.bgv-submit-progress__steps li.is-current::before {
  animation: bgv-submit-progress-pulse 1100ms linear infinite;
}
.bgv-submit-progress.is-static .bgv-submit-progress__card { transform: none; }
.bgv-submit-progress.is-static .bgv-submit-progress__sheet--front,
.bgv-submit-progress.is-static .bgv-submit-progress__scan,
.bgv-submit-progress.is-static .bgv-submit-progress__steps li.is-current::before { animation: none; }

@keyframes bgv-submit-sheet {
  from { transform: translateY(0) rotate(-1.5deg); }
  to { transform: translateY(-4px) rotate(-.5deg); }
}
@keyframes bgv-submit-scan {
  from { transform: translateY(-42px); }
  to { transform: translateY(42px); }
}
@keyframes bgv-submit-progress-pulse {
  0% { opacity: .42; transform: scaleX(.38); }
  55%, 100% { opacity: 1; transform: scaleX(1); }
}

@media (max-width: 560px) {
  .bgv-submit-progress { padding: 16px; }
  .bgv-submit-progress__card {
    min-height: 0;
    padding: 30px 24px;
    grid-template-columns: 1fr;
    gap: 22px;
    text-align: center;
  }
  .bgv-submit-progress__visual { width: 94px; height: 112px; }
  .bgv-submit-progress__copy > p { margin-inline: auto; }
  .bgv-submit-progress__steps { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .bgv-submit-progress { transition: opacity 140ms var(--bgvf-ease-out); }
  .bgv-submit-progress__card { transform: none; transition: opacity 140ms var(--bgvf-ease-out); }
  .bgv-submit-progress__sheet--front,
  .bgv-submit-progress__scan,
  .bgv-submit-progress__steps li.is-current::before { animation: none; }
}

/* Shared form confirmation. Dashboard forms keep their layout and resolve
   inside the submit button; public forms softly hand off to their final
   message. Only opacity and transform move, so slow submissions cannot
   make the confirmation itself stutter. */
.is-form-submit-success .form-submit-success__icon,
.is-form-submit-success .form-submit-success__label {
  animation: form-submit-control-enter 220ms cubic-bezier(.23, 1, .32, 1) both;
}

.is-form-submit-success .form-submit-success__icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
}

.is-form-submit-success .form-submit-success__label { animation-delay: 35ms; }

.form-submit-complete {
  animation: form-submit-panel-enter 240ms cubic-bezier(.23, 1, .32, 1) both;
}

.form-submit-complete .apply-success__icon,
.form-submit-complete .bgv-form-complete__mark,
.bgv-attest__message.form-submit-complete > h1:first-child {
  animation: form-submit-mark-enter 220ms 40ms cubic-bezier(.23, 1, .32, 1) both;
}

@keyframes form-submit-control-enter {
  from { opacity: 0; transform: scale(.94); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes form-submit-panel-enter {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes form-submit-mark-enter {
  from { opacity: 0; transform: scale(.94); }
  to { opacity: 1; transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .is-form-submit-success .form-submit-success__icon,
  .is-form-submit-success .form-submit-success__label,
  .form-submit-complete,
  .form-submit-complete .apply-success__icon,
  .form-submit-complete .bgv-form-complete__mark,
  .bgv-attest__message.form-submit-complete > h1:first-child {
    transform: none;
    animation: form-submit-reduced-fade 140ms cubic-bezier(.23, 1, .32, 1) both;
  }
}

@keyframes form-submit-reduced-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* The success mark repeats the final icon from the submission overlay. The
   shared symbol makes the fade between the two surfaces read as one resolved
   action rather than an animation followed by an unrelated page. */
.bgv-form-complete__mark {
  width: 52px;
  height: 52px;
  margin: 0 0 20px;
  color: var(--green-ink);
  opacity: 0;
  transform: scale(.94);
  animation: bgv-form-confirmation-mark 240ms 50ms var(--bgvf-ease-out) forwards;
}

.bgv-form-complete__mark svg {
  display: block;
  width: 100%;
  height: 100%;
}

@keyframes bgv-form-confirmation-mark {
  to { opacity: 1; transform: scale(1); }
}

@keyframes bgv-form-confirmation-fade {
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .bgv-form-complete__mark {
    transform: none;
    animation: bgv-form-confirmation-fade 140ms var(--bgvf-ease-out) forwards;
  }
}
.cdf-page__logo {
  width: 122px;
  height: auto;
  display: block;
  object-fit: contain;
}
.cdf-empty { display: inline-block; min-width: 16px; }

/* Page 1: personal details. */
.cdf-page--personal h1 {
  margin: 70px 0 32px;
  text-align: center;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.2;
}
.cdf-instruction {
  margin: 0 0 32px;
  text-align: justify;
  font-size: 12px;
  line-height: 1.55;
}
.cdf-reference {
  display: grid;
  grid-template-columns: auto minmax(160px, 1fr) auto;
  gap: 8px;
  align-items: end;
  margin-bottom: 42px;
}
.cdf-reference span { min-height: 20px; padding: 0 6px 2px; border-bottom: 1px solid #111; font-weight: 700; }
.cdf-reference em { font-size: 10px; font-style: normal; }
.cdf-page--personal h2,
.cdf-page--employment h2 {
  margin: 0 0 24px;
  text-align: center;
  font-size: 14px;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cdf-personal-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 38px;
  row-gap: 24px;
}
.cdf-personal-field {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(120px, auto) minmax(40px, 1fr);
  gap: 7px;
  align-items: end;
}
.cdf-personal-field--wide { grid-column: 1 / -1; }
.cdf-personal-field span { font-weight: 600; }
.cdf-personal-field strong {
  min-width: 0;
  min-height: 20px;
  padding: 0 5px 2px;
  overflow-wrap: anywhere;
  border-bottom: 1px solid #111;
  font-weight: 600;
}

/* Pages 2–4: employment grids. */
.cdf-page--employment { padding-top: 36px; }
.cdf-page--employment:not(.cdf-page--employment-first) .cdf-page__logo { margin-bottom: 36px; }
.cdf-page--employment h2 { margin-bottom: 8px; }
.cdf-employment-note { margin: 0 0 14px; font-size: 10px; text-align: center; }
.cdf-employment-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1.5px solid #111;
  font-size: 10px;
  line-height: 1.18;
}
.cdf-employment-table col:nth-child(1) { width: 29%; }
.cdf-employment-table col:nth-child(2) { width: 29%; }
.cdf-employment-table col:nth-child(3) { width: 19%; }
.cdf-employment-table col:nth-child(4) { width: 23%; }
.cdf-employment-table th,
.cdf-employment-table td {
  height: 29px;
  padding: 4px 7px;
  vertical-align: middle;
  border: 1px solid #111;
  overflow-wrap: anywhere;
}
.cdf-employment-table strong { font-weight: 600; }
.cdf-employment-title { height: 30px !important; background: #e3e3e3; font-size: 12px; letter-spacing: 0.01em; }
.cdf-employment-title small { float: right; font-size: 9px; font-weight: 600; }
.cdf-contract-title { height: 28px !important; background: #e3e3e3; font-size: 10px; }
.cdf-table-label { font-weight: 600; }
.cdf-table-field > span { margin-right: 6px; font-weight: 600; }
.cdf-table-field > strong { display: inline; }
.cdf-table-field--company > span { white-space: nowrap; }
.cdf-table-field--email {
  height: 36px !important;
  vertical-align: middle !important;
}
.cdf-table-field--email > span {
  display: block;
  margin: 0 0 3px;
  color: #333;
  font-size: 8.5px;
  line-height: 1.15;
}
.cdf-table-field--email > strong {
  display: block;
  min-width: 0;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.cdf-address-row > td { height: 44px; vertical-align: top; }
.cdf-reason-row > td { height: 42px; vertical-align: top; }
.cdf-check { display: inline-flex; align-items: center; gap: 6px; }
.cdf-check i {
  width: 13px;
  height: 13px;
  display: inline-grid;
  place-items: center;
  flex: 0 0 13px;
  border: 1px solid #111;
  font-size: 10px;
  font-style: normal;
  line-height: 1;
}
.cdf-document-note {
  margin: 10px 0 0;
  color: #b42318;
  font-size: 9px;
  line-height: 1.45;
}
.cdf-document-note--muted { color: #4b5563; }
.cdf-document-status { color: #19713a; white-space: nowrap; }

/* Page 5: references. */
.cdf-page--references .cdf-page__logo { margin-bottom: 62px; }
.cdf-reference-heading { margin: 0 0 18px; display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.cdf-page--references h2 { margin: 0; font-size: 13px; font-weight: 700; }
.cdf-reference-heading span { font-size: 9px; font-weight: 600; }
.cdf-reference-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  border: 1px solid #111;
  font-size: 9px;
  line-height: 1.25;
}
.cdf-reference-table th,
.cdf-reference-table td {
  height: 45px;
  padding: 6px;
  overflow-wrap: anywhere;
  vertical-align: top;
  border: 1px solid #111;
  text-align: left;
}
.cdf-reference-table th { height: 52px; vertical-align: middle; background: #f1f1f1; text-align: center; }
.cdf-reference-table th:nth-child(1) { width: 18%; }
.cdf-reference-table th:nth-child(2) { width: 20%; }
.cdf-reference-table th:nth-child(3) { width: 18%; }
.cdf-reference-table th:nth-child(4) { width: 22%; }
.cdf-reference-table th:nth-child(5) { width: 22%; }
.cdf-reference-association { display: block; margin-top: 4px; color: #555; font-size: 8px; line-height: 1.3; }
.cdf-reference-table--dense { font-size: 8px; }
.cdf-reference-table--dense th,
.cdf-reference-table--dense td { height: 34px; padding: 4px; }
.cdf-reference-table--dense th { height: 44px; }

/* Page 6: authorization and signature. */
.cdf-page--declaration { padding-top: 64px; }
.cdf-page--declaration h2 {
  margin: 0 0 34px;
  text-align: center;
  font-size: 14px;
  line-height: 1.25;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.cdf-declaration-copy { font-size: 11px; line-height: 1.55; text-align: justify; }
.cdf-declaration-copy p { margin: 0 0 18px; }
.cdf-declaration-warning {
  max-width: 92%;
  margin: 28px auto 42px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
.cdf-signature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 54px;
  row-gap: 30px;
}
.cdf-signature-grid > div { min-width: 0; display: grid; grid-template-columns: auto minmax(70px, 1fr); gap: 7px; align-items: end; }
.cdf-signature-grid span { font-weight: 600; }
.cdf-signature-grid strong {
  min-height: 21px;
  padding: 0 5px 2px;
  overflow-wrap: anywhere;
  border-bottom: 1px solid #111;
}
.cdf-signature-mark { font-family: Georgia, "Times New Roman", serif; font-size: 14px; font-style: italic; }

@media (max-width: 900px) {
  .bgv-public.is-preview-step .bgv-preview__stage { margin-inline: -8px; padding: 12px; }
}

@media (max-width: 640px) {
  .bgv-reference-intro,
  .bgv-reference-actions { align-items: flex-start; flex-direction: column; }
  .bgv-public .bgv-ref-block.bgv-reference-card { padding: 22px 0; }
  .bgv-reference-actions button { width: 100%; justify-content: center; }
}

@media print {
  @page { size: Letter portrait; margin: 0; }
  html, body { width: 8.5in; margin: 0 !important; padding: 0 !important; background: #fff !important; }
  .bgv-public.is-preview-step .bgv-public__content,
  .bgv-public.is-preview-step .bgv-form-experience,
  .bgv-public.is-preview-step .bgv-form-panel,
  .bgv-public.is-preview-step #bgv-form,
  .bgv-public.is-preview-step .bgv-preview__stage,
  .bgv-public.is-preview-step .cdf-document {
    width: 8.5in !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: block !important;
    overflow: visible !important;
    border: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  .bgv-public.is-preview-step .cdf-page {
    width: 8.5in !important;
    height: 11in !important;
    margin: 0 !important;
    padding: 0.5in 0.65in 0.44in !important;
    overflow: hidden !important;
    break-after: page;
    page-break-after: always;
    background: #fff !important;
    box-shadow: none !important;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
  .bgv-public.is-preview-step .cdf-page:last-child { break-after: auto; page-break-after: auto; }
}

/* --- candidate document access -------------------------------------------
   Resume and source-email access belong with candidate identity, not at the
   bottom of a long scrolling panel. The fixed drawer header keeps both
   actions available without turning detail rows into a toolbar. */
dialog#candidate-drawer > .drawer__header {
  display: grid;
  min-height: 0;
  padding: 24px 26px 18px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 16px 12px;
}

.candidate-drawer__identity { min-width: 0; }

.candidate-drawer__quick-actions {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.candidate-drawer__quick-actions[hidden] { display: none; }

.candidate-quick-action {
  min-width: 0;
  min-height: 42px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid var(--rule-mid);
  border-radius: 10px;
  color: var(--ink-700);
  background: var(--paper-raised);
  font-family: var(--font-body);
  font-size: 13px;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  box-shadow: var(--shadow-sm);
  transition: transform 120ms ease, border-color 160ms ease,
    background-color 160ms ease, box-shadow 160ms ease;
}

.candidate-quick-action svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.candidate-quick-action .candidate-quick-action__arrow {
  width: 14px;
  height: 14px;
  margin-left: auto;
  flex-basis: 14px;
}

.candidate-quick-action--primary {
  border-color: var(--ink);
  color: var(--on-accent);
  background: var(--ink);
  box-shadow: 0 5px 14px color-mix(in oklab, var(--ink) 15%, transparent);
}

.candidate-quick-action:hover {
  color: var(--ink);
  border-color: var(--ink-600);
  background: var(--surface-hover);
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

.candidate-quick-action--primary:hover {
  color: var(--on-accent);
  border-color: var(--ink-800);
  background: var(--ink-800);
  box-shadow: 0 7px 18px color-mix(in oklab, var(--ink) 18%, transparent);
}

.candidate-quick-action:active,
.candidate-quick-action--primary:active { transform: translateY(1px); box-shadow: none; }
.candidate-quick-action:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Resume preview is a document workspace: the shell never scrolls, while
   the browser's native document viewer owns the one visible scrollbar. */
dialog#resume-dialog {
  width: min(1080px, calc(100vw - 80px));
  height: min(720px, calc(100dvh - 112px));
  max-width: none;
  max-height: none;
  margin: auto;
  padding: 0;
  overflow: hidden;
  scrollbar-gutter: auto;
  border: 1px solid var(--rule-mid);
  border-radius: 18px;
  background: var(--paper-raised);
  box-shadow: 0 24px 64px color-mix(in oklab, var(--ink) 24%, transparent);
}

dialog#resume-dialog[open] { display: flex; flex-direction: column; }

dialog#resume-dialog::backdrop {
  background: color-mix(in oklab, var(--ink) 42%, transparent);
  backdrop-filter: blur(3px);
}

dialog#resume-dialog > .dialog-shell__header {
  min-height: 64px;
  padding: 11px 14px 11px 18px;
  align-items: center;
  border-bottom: 1px solid var(--rule);
  background: var(--paper-raised);
}

.resume-dialog__identity { min-width: 0; }

dialog#resume-dialog #resume-dialog-title {
  margin: 0;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -.025em;
}

dialog#resume-dialog #resume-dialog-subtitle {
  margin: 3px 0 0;
  overflow: hidden;
  color: var(--ink-muted);
  font-size: 12px;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-dialog__actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.resume-dialog__actions .btn {
  min-height: 38px;
  border-radius: 10px;
  box-shadow: none;
}
.resume-dialog__actions .btn:hover { transform: none; box-shadow: var(--shadow-sm); }

#resume-download-link[hidden] { display: none !important; }

.resume-dialog__actions svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

dialog#resume-dialog #resume-dialog-close {
  width: 38px;
  height: 38px;
  min-height: 38px;
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px var(--rule);
}
dialog#resume-dialog #resume-dialog-close:hover { transform: none; }

dialog#resume-dialog > .dialog-shell__body {
  position: relative;
  display: flex;
  min-height: 0;
  padding: 10px;
  overflow: hidden;
  background: var(--surface);
}

dialog#resume-dialog .resume-frame {
  width: 100%;
  height: 100%;
  min-height: 0;
  flex: 1 1 auto;
  border: 1px solid var(--rule-mid);
  border-radius: 9px;
  background: var(--paper-raised);
  opacity: 0;
  transform: translateY(4px) scale(.995);
  transition: opacity 220ms var(--ease-standard), transform 220ms var(--ease-standard);
}

dialog#resume-dialog[data-resume-state="ready"] .resume-frame {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.resume-loader {
  position: absolute;
  z-index: 2;
  inset: 10px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 18px;
  overflow: hidden;
  border: 1px solid var(--rule-mid);
  border-radius: 9px;
  color: var(--ink);
  background:
    radial-gradient(circle at 50% 39%, color-mix(in oklab, var(--paper-raised) 96%, transparent) 0 24%, transparent 58%),
    var(--surface);
  opacity: 1;
  transform: translateY(0);
  transition: opacity 220ms var(--ease-standard), transform 220ms var(--ease-standard);
}

dialog#resume-dialog[data-resume-state="ready"] .resume-loader,
dialog#resume-dialog[data-resume-state="error"] .resume-loader {
  pointer-events: none;
  opacity: 0;
  transform: translateY(-5px);
}

.resume-error {
  position: absolute;
  z-index: 3;
  inset: 10px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 18px;
  padding: 32px;
  border: 1px solid var(--rule-mid);
  border-radius: 9px;
  color: var(--ink);
  background: var(--paper-raised);
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(6px) scale(.99);
  transition: opacity 220ms var(--ease-standard), transform 220ms var(--ease-standard);
}

dialog#resume-dialog[data-resume-state="error"] .resume-error {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0) scale(1);
}

.resume-error__icon {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid color-mix(in oklab, var(--brick-ink) 24%, var(--rule));
  border-radius: 16px;
  color: var(--brick-ink);
  background: color-mix(in oklab, var(--brick-bg) 72%, var(--paper-raised));
}

.resume-error__icon svg {
  width: 27px;
  height: 27px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-error__copy {
  display: grid;
  max-width: 410px;
  gap: 7px;
}

.resume-error__copy h4 {
  margin: 0;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.025em;
}

.resume-error__copy p {
  margin: 0;
  color: var(--ink-muted);
  font-size: 13px;
  line-height: 1.55;
}

.resume-error .btn {
  min-height: 40px;
  border-radius: 10px;
  box-shadow: none;
}

.resume-loader__stage {
  position: relative;
  width: 190px;
  height: 236px;
  display: grid;
  place-items: center;
  perspective: 700px;
}

.resume-loader__float { animation: resume-loader-float 2400ms var(--ease-standard) infinite alternate; }

.resume-loader__paper {
  position: relative;
  width: 154px;
  height: 210px;
  padding: 20px 17px;
  overflow: hidden;
  border: 1px solid color-mix(in oklab, var(--rule-mid) 82%, white);
  border-radius: 7px;
  background: var(--paper-raised);
  box-shadow: 0 18px 42px color-mix(in oklab, var(--ink) 14%, transparent),
    0 2px 5px color-mix(in oklab, var(--ink) 7%, transparent);
  animation: resume-sheet-enter 260ms var(--ease-standard) both;
}

.resume-loader__paper::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--ink);
}

.resume-loader__paper-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
}

.resume-loader__avatar {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 7px;
  background: var(--ink);
  opacity: .94;
}

.resume-loader__headline { width: 82px; display: grid; gap: 6px; }
.resume-loader__headline i,
.resume-loader__section i,
.resume-loader__section b,
.resume-loader__skills i {
  display: block;
  height: 5px;
  border-radius: 99px;
  background: color-mix(in oklab, var(--ink) 13%, var(--surface));
  opacity: .72;
  animation: resume-line-pulse 1200ms ease-in-out infinite alternate;
}
.resume-loader__headline i:first-child { width: 78%; background: color-mix(in oklab, var(--ink) 60%, var(--surface)); }
.resume-loader__headline i:last-child { width: 54%; animation-delay: 90ms; }
.resume-loader__section { display: grid; gap: 7px; margin-bottom: 17px; }
.resume-loader__section b { width: 38%; height: 6px; margin-bottom: 2px; background: color-mix(in oklab, var(--ink) 48%, var(--surface)); }
.resume-loader__section i:nth-child(2) { width: 100%; animation-delay: 140ms; }
.resume-loader__section i:nth-child(3) { width: 88%; animation-delay: 220ms; }
.resume-loader__section i:nth-child(4) { width: 72%; animation-delay: 300ms; }
.resume-loader__section--short i:nth-child(3) { width: 63%; }
.resume-loader__skills { display: flex; gap: 5px; }
.resume-loader__skills i { width: 31px; height: 12px; border-radius: 4px; animation-delay: 380ms; }

.resume-loader__scan {
  position: absolute;
  z-index: 2;
  top: -18px;
  left: 0;
  width: 100%;
  height: 18px;
  background: linear-gradient(to bottom, transparent, color-mix(in oklab, var(--ink) 9%, transparent), transparent);
  opacity: .8;
  transform: translateY(-100%);
  animation: resume-scan 1500ms linear infinite;
}

.resume-loader__spark {
  position: absolute;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ink);
  opacity: .14;
  animation: resume-spark 1400ms ease-in-out infinite alternate;
}
.resume-loader__spark--one { top: 35px; left: 4px; }
.resume-loader__spark--two { top: 91px; right: 2px; animation-delay: 180ms; }
.resume-loader__spark--three { right: 14px; bottom: 28px; animation-delay: 360ms; }

.resume-loader__copy { display: grid; justify-items: center; gap: 4px; text-align: center; }
.resume-loader__copy strong { font-size: 15px; font-weight: 700; letter-spacing: -.02em; }
.resume-loader__copy span { color: var(--ink-muted); font-size: 12px; }

.resume-loader__progress {
  width: 176px;
  height: 3px;
  overflow: hidden;
  border-radius: 99px;
  background: color-mix(in oklab, var(--ink) 10%, transparent);
}
.resume-loader__progress span {
  display: block;
  width: 45%;
  height: 100%;
  border-radius: inherit;
  background: var(--ink);
  transform: translateX(-110%);
  animation: resume-progress 1200ms var(--ease-standard) infinite;
}

@keyframes resume-sheet-enter {
  from { opacity: 0; transform: translateY(12px) scale(.96) rotateX(4deg); }
  to { opacity: 1; transform: translateY(0) scale(1) rotateX(0); }
}
@keyframes resume-loader-float {
  from { transform: translateY(0); }
  to { transform: translateY(-4px); }
}
@keyframes resume-line-pulse {
  from { opacity: .42; }
  to { opacity: .86; }
}
@keyframes resume-scan {
  from { transform: translateY(-100%); }
  to { transform: translateY(1320%); }
}
@keyframes resume-spark {
  from { opacity: .08; transform: scale(.9); }
  to { opacity: .24; transform: scale(1.08); }
}
@keyframes resume-progress {
  0% { transform: translateX(-110%); }
  55%, 100% { transform: translateX(245%); }
}

@media (prefers-reduced-motion: reduce) {
  .resume-loader__float,
  .resume-loader__paper,
  .resume-loader__scan,
  .resume-loader__spark,
  .resume-loader__progress span { animation: none; }
  .resume-loader__headline i,
  .resume-loader__section i,
  .resume-loader__section b,
  .resume-loader__skills i { animation: resume-line-pulse 1600ms ease-in-out infinite alternate; }
  .resume-loader,
  .resume-error,
  dialog#resume-dialog .resume-frame { transform: none; transition: opacity 160ms var(--ease-standard); }
}

@media (max-width: 900px) {
  dialog#resume-dialog {
    width: calc(100vw - 32px);
    height: calc(100dvh - 48px);
  }
}

@media (max-width: 640px) {
  dialog#candidate-drawer > .drawer__header { padding: 22px 18px 16px; }
  .candidate-drawer__quick-actions { gap: 6px; }
  .candidate-quick-action { padding-inline: 10px; font-size: 12px; }

  dialog#resume-dialog {
    width: calc(100vw - 12px);
    height: calc(100dvh - 12px);
    border-radius: 14px;
  }
  dialog#resume-dialog > .dialog-shell__header { min-height: 64px; padding: 10px 10px 10px 14px; }
  dialog#resume-dialog > .dialog-shell__body { padding: 6px; }
  .resume-loader,
  .resume-error { inset: 6px; }
  .resume-loader__stage { margin-block: -14px; transform: scale(.88); }
  .resume-dialog__actions .btn { width: 38px; padding: 0; }
  .resume-dialog__actions .btn span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
}

/* --- Overview metrics: dense enterprise strip ---------------------------
   One continuous dark surface with internal rules, not six floating cards.
   The restrained charcoal gradient adds depth while preserving white-text
   contrast from the first metric through the last. */
.metrics-row {
  margin: 16px 0 24px;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 10px;
  background: linear-gradient(112deg, #15161b 0%, #202229 48%, #30333c 100%);
  box-shadow: 0 10px 26px rgba(15, 16, 21, .12);
}

.metric,
.metric:first-child,
.metric--total,
.metric--attention,
.metric--attention[data-empty="true"] {
  min-height: 84px;
  padding: 13px 17px 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  grid-column: auto;
  grid-row: auto;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, .16);
  border-radius: 0;
  color: #fff;
  background: transparent;
  box-shadow: none;
}

.metric:last-child { border-right: 0; }

.metric__value,
.metric--total .metric__value,
.metric--attention .metric__value,
.metric--attention[data-empty="true"] .metric__value {
  color: #fff;
  font-family: var(--font-mono);
  font-size: clamp(27px, 1.8vw, 32px);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.045em;
  line-height: 1;
}

.metric__label,
.metric--attention .metric__label,
.metric--attention[data-empty="true"] .metric__label {
  color: rgba(255, 255, 255, .74);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.25;
}

@media (max-width: 1180px) {
  .metrics-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .metric { border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .metric:nth-child(3n) { border-right: 0; }
  .metric:nth-child(n + 4) { border-bottom: 0; }
}

@media (max-width: 640px) {
  .metrics-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric,
  .metric:nth-child(3n) { min-height: 80px; border-right: 1px solid rgba(255, 255, 255, .16); }
  .metric:nth-child(even) { border-right: 0; }
  .metric:nth-child(n + 4) { border-bottom: 1px solid rgba(255, 255, 255, .16); }
  .metric:nth-child(n + 5) { border-bottom: 0; }
}

@media (max-width: 380px) {
  .metrics-row { grid-template-columns: 1fr; }
  .metrics-row .metric,
  .metric:nth-child(3n),
  .metric:nth-child(even) {
    min-height: 76px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .16);
  }
  .metrics-row .metric:last-child { border-bottom: 0; }
}

/* Intake diagnostics: one flat list, with detail disclosed only on demand. */
.settings-email-activity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding-block: 4px 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--rule);
}
.settings-email-activity h2 { margin: 0; font-size: var(--text-lg); }
.settings-email-activity p { margin: 4px 0 0; font-size: var(--text-sm); color: var(--ink-soft); }
.settings-email-activity > button { flex-shrink: 0; }
#email-activity-dialog {
  width: min(960px, calc(100vw - 32px));
  max-height: 85dvh;
  overflow-y: auto;
  padding: 24px;
  border: 1px solid var(--rule);
  border-radius: var(--radius-lg);
  background: var(--paper-raised);
  color: var(--ink);
  box-shadow: var(--shadow-modal);
}
#email-activity-dialog::backdrop { background: color-mix(in srgb, var(--ink) 32%, transparent); }
.email-activity__header, .email-activity__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.email-activity__header h2 { margin: 0; font-size: var(--text-xl); }
.email-activity__filters {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(160px, .6fr) auto;
  gap: 12px;
  align-items: end;
  margin-block: 20px 12px;
}
.email-activity__filters label { display: grid; gap: 6px; font-size: var(--text-sm); }
.email-activity__filters input, .email-activity__filters select { width: 100%; min-width: 0; }
.email-activity__item { border-top: 1px solid var(--rule); }
.email-activity__item summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px minmax(120px, auto);
  gap: 16px;
  align-items: center;
  padding: 14px 4px;
  cursor: pointer;
}
.email-activity__item summary:hover { background: var(--surface); }
.email-activity__item summary:focus-visible { outline: 2px solid var(--focus); outline-offset: -2px; }
.email-activity__identity { display: grid; gap: 4px; overflow-wrap: anywhere; }
.email-activity__identity span, .email-activity__item time { color: var(--ink-soft); font-size: var(--text-sm); }
.email-activity__outcome { font-size: var(--text-sm); font-weight: 600; }
.email-activity__outcome[data-outcome="failed"] { color: var(--brick-ink); }
.email-activity__outcome[data-outcome="needs_review"] { color: var(--amber-ink); }
.email-activity__detail { padding: 0 4px 12px; overflow-wrap: anywhere; }
.email-activity__detail p { white-space: pre-wrap; }
.email-activity__footer { border-top: 1px solid var(--rule); padding-top: 16px; margin-block: 12px; }
@media (max-width: 600px) {
  #email-activity-dialog { padding: 16px; }
  .email-activity__filters { grid-template-columns: minmax(0, 1fr) auto; }
  .email-activity__filters label:first-child { grid-column: 1 / -1; }
  .email-activity__item summary { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  .email-activity__item time { grid-column: 1 / -1; }
}
