:root {
  --primary: #f37435;
  --primary-dark: #233044;
  --primary-soft: #fff3ed;
  --accent: #f37435;
  --background: #f7f9fc;
  --surface: #ffffff;
  --surface-muted: #f9fafb;
  --border: #e4e7ec;
  --text-primary: #182230;
  --text-secondary: #667085;
  --wine: #f37435;
  --wine-2: #d94e0f;
  --orange: #f37435;
  --ink: #182230;
  --muted: #667085;
  --line: #e4e7ec;
  --soft: #f7f9fc;
  --sage: #f37435;
  --sage-dark: #d94e0f;
  --radius: 6px;
  --radius-lg: 8px;
  --shadow-soft: 0 1px 3px rgba(16, 24, 40, .08);
  --shadow-panel: 0 8px 20px rgba(16, 24, 40, .08);
}

.candidate-application-success {
  align-self: start;
  display: grid;
  gap: 16px;
  justify-items: start;
  padding: clamp(28px, 5vw, 56px);
}

.candidate-application-success h2 {
  font-size: clamp(26px, 4vw, 40px);
  line-height: 1.1;
  max-width: 720px;
}

.candidate-application-success > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 16px;
  line-height: 1.65;
  max-width: 680px;
}

.candidate-success-icon {
  align-items: center;
  background: color-mix(in srgb, var(--career-accent, #f37435) 14%, white);
  border-radius: 999px;
  color: var(--career-accent, #f37435);
  display: flex;
  height: 64px;
  justify-content: center;
  width: 64px;
}

.candidate-success-icon svg {
  height: 30px;
  width: 30px;
}

.candidate-success-steps {
  display: grid;
  gap: 12px;
  width: 100%;
}

.candidate-success-steps > div {
  align-items: center;
  background: #f8fafc;
  border: 1px solid #e4e9f0;
  border-radius: 14px;
  display: grid;
  gap: 12px;
  grid-template-columns: 38px 1fr;
  padding: 14px 16px;
}

.candidate-success-steps > div > span {
  align-items: center;
  background: #233044;
  border-radius: 999px;
  color: #fff;
  display: flex;
  font-weight: 800;
  height: 32px;
  justify-content: center;
  width: 32px;
}

.candidate-success-steps strong,
.candidate-success-steps small {
  display: block;
}

.candidate-success-steps small {
  color: var(--muted);
  line-height: 1.45;
  margin-top: 3px;
}

.candidate-success-actions {
  display: flex;
  gap: 10px;
  padding-top: 4px;
}

.module-back-button {
  background: transparent;
  border: 0;
  color: var(--primary-dark, #233044);
  cursor: pointer;
  font: inherit;
  font-weight: 750;
  margin: 0 0 20px;
  padding: 0;
}

.module-guide-tabs {
  align-items: center;
  background: #fff;
  border: 1px solid #e2e7ed;
  border-radius: 12px;
  display: flex;
  gap: 4px;
  margin: -4px 0 18px;
  overflow-x: auto;
  padding: 5px;
  scrollbar-width: thin;
}

.module-guide-tabs button {
  background: transparent;
  border: 0;
  border-radius: 8px;
  color: var(--muted);
  cursor: pointer;
  flex: 0 0 auto;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  padding: 9px 13px;
}

.module-guide-tabs button:hover {
  background: #f6f8fb;
  color: var(--primary-dark, #233044);
}

.module-guide-tabs button.active {
  background: var(--primary-dark, #233044);
  color: #fff;
}

.module-back-button:hover {
  color: var(--accent, #f37435);
}

.candidate-name-button {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: inline-grid;
  font: inherit;
  gap: 2px;
  padding: 0;
  text-align: left;
}

.candidate-name-button strong {
  color: var(--primary-dark, #233044);
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 3px;
}

.candidate-name-button:hover strong,
.candidate-name-button:focus-visible strong {
  color: var(--accent, #f37435);
  text-decoration-color: currentColor;
}

.candidate-name-button small {
  color: var(--muted);
}

.candidate-directory tbody tr {
  cursor: pointer;
  transition: background 160ms ease, box-shadow 160ms ease;
}

.candidate-directory tbody tr:hover,
.candidate-directory tbody tr:focus-visible {
  background: #fff9f5;
  box-shadow: inset 3px 0 var(--accent, #f37435);
  outline: 0;
}

.candidate-dossier {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}

.candidate-dossier-hero {
  align-items: start;
  background: linear-gradient(135deg, #233044 0%, #34445d 100%);
  border-radius: 18px;
  color: #fff;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  padding: clamp(22px, 4vw, 36px);
}

.candidate-dossier-hero > div {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.candidate-dossier-hero h2 {
  color: #fff;
  font-size: clamp(28px, 4vw, 42px);
  margin: 4px 0 14px;
}

.candidate-dossier-hero .eyebrow,
.candidate-dossier-hero .ats-meta > span:not(.tag) {
  color: #dce6f4;
}

.candidate-dossier-hero .ats-meta > span:not(.tag) {
  background: rgba(255, 255, 255, .1);
  border-color: rgba(255, 255, 255, .16);
}

.candidate-dossier-score {
  background: rgba(255, 255, 255, .12);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 16px;
  display: grid;
  min-width: 150px;
  padding: 16px;
  text-align: center;
}

.candidate-dossier-score strong {
  color: #fff;
  font-size: 34px;
}

.candidate-dossier-score small,
.candidate-dossier-score span {
  color: #dce6f4;
}

.candidate-dossier-tabs {
  display: flex;
  overflow-x: auto;
  width: 100%;
}

.candidate-dossier-content {
  min-height: 260px;
}

.candidate-dossier-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.candidate-dossier-card,
.candidate-application-card,
.candidate-notes-layout > section {
  min-width: 0;
  overflow-wrap: anywhere;
  background: #f8fafc;
  border: 1px solid #e1e7ee;
  border-radius: 16px;
  padding: 20px;
}

.candidate-dossier-card h3,
.candidate-application-card h3,
.candidate-notes-layout h3 {
  margin: 0 0 14px;
}

.candidate-dossier-card dl {
  display: grid;
  gap: 12px;
  margin: 14px 0 0;
}

.candidate-dossier-card dl > div {
  border-bottom: 1px solid #e3e8ef;
  display: grid;
  gap: 4px;
  padding-bottom: 10px;
}

.candidate-dossier-card dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 750;
  text-transform: uppercase;
}

.candidate-dossier-card dd {
  line-height: 1.5;
  margin: 0;
  overflow-wrap: anywhere;
}

.candidate-employment-card {
  background: #f5f9f4;
  border-color: #d9e6d5;
}

.candidate-application-stack {
  display: grid;
  gap: 14px;
}

.candidate-profile-result {
  background: #fff;
  border: 1px solid #e1e7ee;
  border-radius: 12px;
  margin-top: 16px;
  padding: 16px;
}
.candidate-profile-result h4 { margin: 0; }
[data-profile-link-result]:not([hidden]) {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 12px;
  margin: 14px 0;
}
[data-profile-link-result] label {
  display: grid;
  gap: 8px;
  flex: 1 1 260px;
  min-width: 0;
}
[data-profile-link-url] {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 12px;
  border: 1px solid #dce3ed;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.candidate-profile-answers { margin: 16px 0 0; }
.candidate-profile-answers > div {
  border-top: 1px solid #e1e7ee;
  padding: 14px 0;
}
.candidate-profile-answers dt small { color: var(--muted); }
.candidate-profile-answers dt p { margin: 6px 0; }
.candidate-profile-answers dd {
  margin: 8px 0 0;
  font-weight: 650;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.candidate-application-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  margin: 14px 0;
}

.candidate-application-card details summary {
  color: var(--primary-dark, #233044);
  cursor: pointer;
  font-weight: 750;
  margin-top: 12px;
}

.candidate-timeline {
  display: grid;
  gap: 0;
}

.candidate-timeline article {
  display: grid;
  gap: 14px;
  grid-template-columns: 18px 1fr;
  padding-bottom: 22px;
  position: relative;
}

.candidate-timeline article::before {
  background: #dbe2ea;
  content: "";
  left: 6px;
  position: absolute;
  top: 14px;
  bottom: -2px;
  width: 2px;
}

.candidate-timeline article:last-child::before {
  display: none;
}

.candidate-timeline-dot {
  background: var(--accent, #f37435);
  border: 3px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 2px var(--accent, #f37435);
  height: 12px;
  margin-top: 4px;
  position: relative;
  width: 12px;
  z-index: 1;
}

.candidate-timeline-dot.people {
  background: #65754f;
  box-shadow: 0 0 0 2px #65754f;
}

.candidate-timeline-heading {
  align-items: start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.candidate-timeline time,
.candidate-timeline small {
  color: var(--muted);
  font-size: 12px;
}

.candidate-timeline p {
  margin: 5px 0;
}

.candidate-notes-layout {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
}

.candidate-notes-layout textarea {
  margin: 14px 0 10px;
  width: 100%;
}

@media (max-width: 900px) {
  .candidate-dossier-grid,
  .candidate-notes-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .candidate-dossier-hero {
    flex-direction: column;
  }

  .candidate-dossier-score {
    width: 100%;
  }
}

/* Portal público de carreiras por empresa */
:root {
  --career-primary: #233044;
  --career-secondary: #ffffff;
  --career-accent: #f37435;
  --career-background: #f6f8fb;
}

body.public-jobs-mode {
  font-family: Inter, "Segoe UI", sans-serif;
  background: var(--career-background);
}

.public-jobs-mode .pilot-warning {
  display: none;
}

.public-jobs-mode .request-popup,
.public-jobs-mode .modal-backdrop,
.public-jobs-mode .action-dialog-backdrop,
.public-jobs-mode .toast {
  display: none !important;
}

.public-jobs-mode .public-careers {
  min-height: 100vh;
  padding: 0 24px;
  background:
    radial-gradient(circle at 90% 4%, color-mix(in srgb, var(--career-accent) 13%, transparent), transparent 28rem),
    var(--career-background);
}

.public-jobs-mode .public-careers-inner {
  width: min(1180px, 100%);
  gap: 28px;
}

.public-careers-header,
.public-careers-footer {
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.public-careers-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--career-primary);
  text-decoration: none;
}

.public-careers-brand img {
  width: auto;
  max-width: 160px;
  height: 36px;
  object-fit: contain;
}

.public-careers-monogram {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: var(--career-secondary);
  background: var(--career-primary);
  font-weight: 800;
}

.public-careers-header nav,
.public-careers-footer nav {
  display: flex;
  align-items: center;
  gap: 20px;
}

.public-careers-header nav a,
.public-careers-footer a {
  color: var(--career-primary);
  font-weight: 700;
  text-decoration: none;
}

.public-jobs-mode .public-careers-hero {
  border: 0;
  border-radius: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(240px, .6fr);
  gap: 48px;
  align-items: end;
  padding: clamp(36px, 7vw, 84px);
  color: var(--career-secondary);
  background:
    linear-gradient(125deg, color-mix(in srgb, var(--career-primary) 96%, #000), var(--career-primary));
  box-shadow: 0 28px 80px color-mix(in srgb, var(--career-primary) 25%, transparent);
}

.public-jobs-mode .public-careers-hero h1 {
  max-width: 800px;
  color: var(--career-secondary);
  font-size: clamp(42px, 6vw, 76px);
  line-height: 1.02;
  letter-spacing: -.045em;
}

.public-jobs-mode .public-careers-hero p,
.public-jobs-mode .public-careers-hero .eyebrow {
  color: color-mix(in srgb, var(--career-secondary) 82%, transparent);
}

.public-careers-hero-copy > p:not(.eyebrow) {
  max-width: 720px;
  font-size: 17px;
}

.public-careers-hero-copy .btn {
  margin-top: 18px;
  color: var(--career-primary);
  background: var(--career-accent);
  border-color: var(--career-accent);
}

.public-careers-hero aside {
  border-left: 1px solid color-mix(in srgb, var(--career-secondary) 25%, transparent);
  display: grid;
  gap: 8px;
  padding-left: 32px;
}

.public-careers-hero aside span,
.public-careers-hero aside small {
  color: color-mix(in srgb, var(--career-secondary) 72%, transparent);
}

.public-careers-hero aside strong {
  font-size: clamp(58px, 8vw, 92px);
  line-height: 1;
}

.public-careers-about {
  width: min(760px, 100%);
  padding: 24px 0;
}

.public-careers-about h2,
.public-careers-opportunities h2 {
  margin: 4px 0 10px;
  color: var(--career-primary);
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -.03em;
}

.public-careers-about p:last-child {
  color: #566274;
  font-size: 17px;
  line-height: 1.7;
}

.public-careers-opportunities {
  display: grid;
  gap: 22px;
  scroll-margin-top: 24px;
}

.public-job-list {
  display: grid;
  gap: 14px;
}

.public-job-card {
  border: 1px solid #dfe5ec;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  padding: 28px 30px;
  background: #fff;
  box-shadow: 0 12px 34px rgba(35, 48, 68, .06);
}

.public-job-card > div > span {
  color: var(--career-accent);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.public-job-card h3 {
  margin: 6px 0;
  color: var(--career-primary);
  font-size: 24px;
}

.public-job-card p {
  max-width: 720px;
  color: #657184;
}

.public-job-card .btn,
.public-job-application .btn {
  color: var(--career-secondary);
  background: var(--career-primary);
  border-color: var(--career-primary);
}

.public-careers-back {
  justify-self: start;
  border: 0;
  color: var(--career-primary);
  background: transparent;
  font-weight: 800;
  cursor: pointer;
}

.public-jobs-mode .public-careers-job-hero {
  grid-template-columns: 1fr;
  padding-block: clamp(34px, 5vw, 64px);
}

.public-job-description,
.public-job-application {
  border-radius: 20px;
}

.public-careers-footer {
  border-top: 1px solid #dfe5ec;
  color: #657184;
  font-size: 13px;
}

.public-careers-hero-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}

.public-careers-text-link {
  margin-top: 18px;
  color: var(--career-secondary);
  font-weight: 800;
  text-decoration: none;
}

.public-careers-hero-media {
  position: relative;
  border: 0;
  min-height: 380px;
  padding: 0;
  overflow: hidden;
  border-radius: 22px;
  background:
    radial-gradient(circle at 74% 24%, color-mix(in srgb, var(--career-accent) 82%, #fff) 0 12%, transparent 13%),
    radial-gradient(circle at 30% 72%, color-mix(in srgb, var(--career-accent) 24%, transparent) 0 22%, transparent 23%),
    linear-gradient(145deg, var(--career-primary), color-mix(in srgb, var(--career-primary) 72%, var(--career-accent)));
}

.public-careers-hero-media > img {
  width: 100%;
  height: 100%;
  min-height: 380px;
  object-fit: cover;
  object-position: center 22%;
}

.public-careers-hero-media > div:last-child {
  position: absolute;
  right: 16px;
  bottom: 16px;
  left: 16px;
  border: 1px solid rgba(255, 255, 255, .24);
  border-radius: 16px;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 12px;
  align-items: center;
  padding: 14px 16px;
  color: #fff;
  background: rgba(24, 34, 48, .82);
  backdrop-filter: blur(12px);
}

.public-careers-hero-media > div:last-child strong {
  grid-row: 1 / span 2;
  font-size: 42px;
}

.public-careers-hero-media > div:last-child span,
.public-careers-hero-media > div:last-child small {
  color: rgba(255, 255, 255, .82);
}

.public-careers-photo-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 12px;
  color: #fff;
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 850;
  text-align: center;
}

.public-careers-photo-fallback span:nth-child(2) {
  color: var(--career-accent);
}

.public-careers-about {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
  gap: clamp(30px, 7vw, 86px);
  align-items: start;
  padding-block: 58px;
  scroll-margin-top: 24px;
}

.public-careers-values {
  display: grid;
  gap: 12px;
}

.public-careers-values article {
  border-bottom: 1px solid #dfe5ec;
  display: grid;
  grid-template-columns: minmax(170px, .45fr) 1fr;
  gap: 24px;
  padding: 18px 0;
}

.public-careers-values strong {
  color: var(--career-primary);
  font-size: 17px;
}

.public-careers-values p {
  margin: 0;
  color: #657184;
  line-height: 1.6;
}

.public-careers-gallery,
.public-careers-testimonials {
  display: grid;
  gap: 24px;
  padding-block: 24px 58px;
}

.public-careers-gallery h2,
.public-careers-testimonials h2 {
  margin-top: 4px;
  color: var(--career-primary);
  font-size: clamp(30px, 4vw, 48px);
  letter-spacing: -.03em;
}

.public-careers-gallery-grid {
  min-height: 360px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 360px;
  gap: 12px;
}

.public-careers-gallery figure {
  margin: 0;
  overflow: hidden;
  border-radius: 18px;
  background: #e9edf2;
}

.public-careers-gallery .gallery-item-1 {
  grid-row: auto;
}

.public-careers-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.public-careers-gallery figure:hover img {
  transform: scale(1.025);
}

.testimonial-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.testimonial-card {
  border: 1px solid #dfe5ec;
  border-radius: 20px;
  display: grid;
  gap: 16px;
  padding: clamp(24px, 4vw, 38px);
  background: #fff;
  box-shadow: 0 12px 34px rgba(35, 48, 68, .06);
}

.testimonial-card > span {
  color: var(--career-accent);
  font-size: 50px;
  line-height: .6;
}

.testimonial-card blockquote {
  margin: 0;
  color: var(--career-primary);
  font-size: 18px;
  font-weight: 690;
  line-height: 1.55;
}

.testimonial-card footer {
  display: flex;
  align-items: center;
  gap: 12px;
}

.testimonial-card footer img,
.testimonial-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  background: var(--career-primary);
}

.testimonial-card footer div {
  display: grid;
  gap: 2px;
}

.testimonial-card footer small {
  color: #657184;
}

.public-job-layout {
  display: grid;
  grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}

.public-job-description {
  position: sticky;
  top: 18px;
}

.public-job-application {
  padding: clamp(20px, 4vw, 38px);
}

.candidate-form-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.candidate-form-heading h2 {
  margin: 3px 0 6px;
}

.candidate-autosave-status {
  border-radius: 999px;
  padding: 7px 10px;
  color: #526071;
  background: #f1f4f7;
  font-size: 11px;
  font-weight: 750;
  white-space: nowrap;
}

.candidate-step-nav {
  display: grid;
  grid-template-columns: repeat(var(--candidate-step-count, 5), minmax(0, 1fr));
  gap: 8px;
  margin: 28px 0 22px;
}

.candidate-step-nav button {
  border: 0;
  display: grid;
  justify-items: center;
  gap: 6px;
  padding: 8px 4px;
  color: #7a8595;
  background: transparent;
  cursor: pointer;
}

.candidate-step-nav button span {
  width: 32px;
  height: 32px;
  border: 1px solid #ccd3dc;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #fff;
  font-weight: 800;
}

.candidate-step-nav button.active,
.candidate-step-nav button.complete {
  color: var(--career-primary);
}

.candidate-step-nav button.active span,
.candidate-step-nav button.complete span {
  border-color: var(--career-accent);
  color: #fff;
  background: var(--career-accent);
}

.candidate-step-panel {
  display: none;
}

.candidate-step-panel.active {
  display: block;
  animation: candidate-panel-in .2s ease;
}

@keyframes candidate-panel-in {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.candidate-step-copy {
  margin-bottom: 18px;
}

.candidate-step-copy > span {
  color: var(--career-accent);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.candidate-step-copy h3 {
  margin: 5px 0;
  color: var(--career-primary);
  font-size: 24px;
}

.candidate-profile-questionnaire {
  display: grid;
  gap: 18px;
}

.candidate-profile-block {
  border: 1px solid #e1e5ea;
  border-radius: 16px;
  padding: 20px;
  background: #fbfcfd;
}

.candidate-profile-block-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
  color: #687587;
}

.candidate-profile-block-heading span {
  color: var(--career-primary);
  font-size: 13px;
  font-weight: 850;
}

.candidate-profile-block-heading small {
  font-size: 12px;
}

.resume-upload {
  border: 1.5px dashed #b8c2ce;
  border-radius: 14px;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px;
  background: #fafbfc;
  cursor: pointer;
}

.resume-upload.dragging,
.resume-upload:focus-within {
  border-color: var(--career-accent);
  background: color-mix(in srgb, var(--career-accent) 8%, #fff);
}

.resume-upload input {
  max-width: 220px;
  color: #687586;
  font: inherit;
  font-size: 12px;
}

.resume-upload input::file-selector-button {
  margin-right: 10px;
  border: 0;
  border-radius: 9px;
  padding: 10px 13px;
  background: var(--career-primary);
  color: #fff;
  font: inherit;
  font-weight: 780;
  cursor: pointer;
}

.resume-upload > div {
  display: grid;
  gap: 4px;
}

.resume-upload-progress {
  margin-top: 8px;
  color: #526071;
  font-size: 12px;
}

.candidate-schedule-options label {
  min-width: 120px;
}

.candidate-empty-step {
  grid-column: 1 / -1;
  border: 1px dashed #cfd6df;
  border-radius: 14px;
  padding: 24px;
  text-align: center;
}

.candidate-review {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.candidate-review > div {
  border: 1px solid #e0e5eb;
  border-radius: 12px;
  display: grid;
  gap: 4px;
  padding: 14px;
  background: #fafbfc;
}

.candidate-review small {
  color: #7a8595;
}

.candidate-consents {
  display: grid;
  gap: 12px;
  margin-top: 20px;
}

.consent-card {
  border: 1px solid #dce2e9;
  border-radius: 14px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: #fff;
  cursor: pointer;
}

.consent-card:has(input:checked) {
  border-color: var(--career-accent);
  background: color-mix(in srgb, var(--career-accent) 7%, #fff);
}

.consent-card input {
  appearance: none;
  width: 22px;
  min-width: 22px;
  height: 22px;
  border: 1.5px solid #aeb8c5;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: #fff;
}

.consent-card input:checked {
  border-color: var(--career-accent);
  background: var(--career-accent);
}

.consent-card input:checked::after {
  content: "✓";
  color: #fff;
  font-size: 15px;
  font-weight: 900;
}

.consent-card > span {
  display: grid;
  gap: 4px;
}

.consent-card small {
  color: #657184;
  font-weight: 540;
  line-height: 1.45;
}

.candidate-form-footer {
  border-top: 1px solid #e1e6ec;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 26px;
  padding-top: 18px;
}

.candidate-form-footer .tag {
  margin-right: auto;
}

.candidate-resume-button {
  margin-top: 5px;
  padding: 4px 8px;
  font-size: 11px;
}

/* Administração do portal */
.career-portal-editor {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr);
  gap: 24px;
  align-items: start;
  margin-top: 18px;
}

.career-portal-preview {
  position: sticky;
  top: 20px;
  border-radius: 22px;
  min-height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: end;
  gap: 12px;
  padding: 30px;
  color: #fff;
  background:
    radial-gradient(circle at 86% 12%, color-mix(in srgb, var(--career-accent) 24%, transparent), transparent 12rem),
    var(--career-primary);
}

.career-portal-preview > span {
  color: color-mix(in srgb, #fff 70%, transparent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.career-portal-preview h3 {
  margin: 0;
  color: #fff;
  font-size: 34px;
  line-height: 1.05;
}

.career-portal-preview p {
  color: color-mix(in srgb, #fff 78%, transparent);
}

.career-portal-preview .btn {
  align-self: start;
  color: var(--career-primary);
  background: var(--career-accent);
  border-color: var(--career-accent);
}

.career-domain-list {
  display: grid;
  gap: 14px;
  margin-top: 20px;
}

.career-domain-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  display: grid;
  grid-template-columns: minmax(220px, .5fr) minmax(0, 1fr);
  gap: 24px;
  padding: 20px;
  background: #fff;
}

.career-domain-card h3 {
  margin: 10px 0 4px;
}

.career-dns-records {
  display: grid;
  gap: 10px;
}

.career-dns-records > div {
  border-radius: 12px;
  display: grid;
  gap: 3px;
  padding: 12px;
  background: #f5f7fa;
}

.career-dns-records span {
  color: var(--muted);
  font-size: 11px;
}

.career-dns-records code {
  overflow-wrap: anywhere;
  color: #233044;
  font-size: 12px;
}

@media (max-width: 820px) {
  .public-jobs-mode .public-careers {
    padding-inline: 14px;
  }

  .public-careers-header,
  .public-careers-footer,
  .public-job-card {
    align-items: flex-start;
    flex-direction: column;
  }

  .public-careers-header nav {
    width: 100%;
  }

  .public-jobs-mode .public-careers-hero,
  .career-portal-editor,
  .career-domain-card {
    grid-template-columns: 1fr;
  }

  .public-jobs-mode .public-careers-hero {
    gap: 28px;
    padding: 32px 24px;
  }

  .public-careers-hero aside {
    border-top: 1px solid color-mix(in srgb, var(--career-secondary) 25%, transparent);
    border-left: 0;
    padding-top: 24px;
    padding-left: 0;
  }

  .public-job-card .btn {
    width: 100%;
  }

  .career-portal-preview {
    position: static;
  }

  .public-careers-about,
  .public-job-layout,
  .testimonial-grid {
    grid-template-columns: 1fr;
  }

  .public-careers-values article {
    grid-template-columns: 1fr;
    gap: 6px;
  }

  .public-careers-gallery-grid {
    min-height: auto;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 280px 220px;
  }

  .public-careers-gallery .gallery-item-1 {
    grid-column: 1 / -1;
    grid-row: auto;
  }

  .public-job-description {
    position: static;
  }

  .candidate-form-heading,
  .candidate-form-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .candidate-autosave-status {
    align-self: flex-start;
  }

  .candidate-step-nav {
    overflow-x: auto;
    grid-template-columns: repeat(var(--candidate-step-count, 5), minmax(104px, 1fr));
    padding-bottom: 6px;
  }

  .candidate-profile-block {
    padding: 14px;
  }

  .candidate-profile-block-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .candidate-review {
    grid-template-columns: 1fr;
  }

  .candidate-form-footer .tag {
    margin-right: 0;
  }

  .resume-upload {
    align-items: stretch;
    flex-direction: column;
  }

  .profile-assessment-list {
    grid-template-columns: 1fr;
  }

  .profile-question {
    grid-template-columns: 1fr;
  }
}

* {
  scrollbar-color: #cfd4dc transparent;
}

body,
button,
input,
select,
textarea {
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body {
  color: var(--text-primary);
  background: var(--background);
  font-size: 13px;
}

.pilot-warning {
  background: #fff8f3;
  border-color: #fed7c3;
  color: #9d3d12;
}

.app-shell {
  padding-top: 0;
  background: var(--background);
}

.sidebar {
  padding: 14px 12px;
  background: var(--primary-dark);
  border-right: 0;
  box-shadow: 4px 0 16px rgba(16, 24, 40, .12);
  backdrop-filter: none;
}

.brand {
  min-height: 54px;
  padding: 7px 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
}

.brand::before,
.brand-mark::after {
  display: none;
}

.brand-mark,
.hr-brandmark {
  width: 34px;
  height: 34px;
  border-radius: 6px;
  background: #f37435;
  box-shadow: none;
}

.brand h1,
.brand strong {
  color: #fff !important;
}

.brand span,
.brand small {
  color: #aeb8c6 !important;
}

.hr-brandmark::after {
  display: none;
}

.nav-group-title {
  padding: 8px 10px 4px;
  color: #8591a2;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .06em;
}

.nav button {
  min-height: 38px;
  padding: 8px 10px;
  border-radius: 6px;
  color: #d9dee7;
  font-size: 12px;
  font-weight: 500;
}

.nav button .nav-icon {
  width: 22px;
  height: 22px;
  border-radius: 4px;
  background: transparent;
}

.nav button.active,
.nav button:hover {
  color: #fff;
  border-color: transparent;
  background: rgba(255, 255, 255, .09);
  box-shadow: none;
}

.nav button.active::before {
  left: -12px;
  top: 4px;
  bottom: 4px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: #f37435;
}

.nav button.active .nav-icon {
  color: #f37435;
  background: transparent;
}

.sidebar .role-switch,
.sidebar-foot,
.sidebar-quick {
  border-color: rgba(255, 255, 255, .12);
  background: rgba(255, 255, 255, .04);
  color: #d9dee7;
  box-shadow: none;
}

body:not(.public-jobs-mode) #main {
  padding: 12px 28px 40px;
}

.topbar {
  margin-bottom: 16px;
  padding: 0 0 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.topbar::after {
  display: none;
}

.page-title {
  color: var(--text-primary);
  font-size: clamp(24px, 2.4vw, 34px);
  font-weight: 600;
  letter-spacing: -.02em;
}

.page-subtitle {
  color: var(--text-secondary);
  font-size: 13px;
}

.eyebrow {
  color: var(--primary);
  font-size: 10px;
  font-weight: 700;
}

.btn {
  min-height: 36px;
  padding: 8px 13px;
  border-color: var(--border);
  border-radius: 6px;
  color: #344054;
  font-size: 12px;
  font-weight: 600;
  box-shadow: none;
}

.btn:hover {
  transform: none;
  border-color: #cfd4dc;
  box-shadow: 0 2px 5px rgba(16, 24, 40, .08);
}

.btn.primary {
  color: #fff;
  border-color: #f37435;
  background: #f37435;
}

.btn.primary:hover {
  border-color: #dc5a1b;
  background: #e96526;
  box-shadow: 0 2px 5px rgba(243, 116, 53, .24);
}

.btn.soft {
  color: #b54708;
  border-color: #fed7c3;
  background: var(--primary-soft);
}

.btn.soft:hover,
.btn.quiet:hover {
  color: #9d3d12;
  background: #fff8f3;
}

.btn.quiet {
  color: #475467;
  background: transparent;
}

.card,
.hr-panel,
.hr-chart-panel,
.ats-card {
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

.card:hover,
.ats-card:hover {
  transform: none;
  border-color: #d0d5dd;
  background: #fff;
  box-shadow: var(--shadow-panel);
}

.field input,
.field select,
.field textarea,
.search-box {
  border-color: #d0d5dd;
  border-radius: 6px;
  color: var(--text-primary);
  background: #fff;
  box-shadow: none;
}

.field input:focus,
.field select:focus,
.field textarea:focus,
.search-box:focus {
  border-color: #f37435;
  box-shadow: 0 0 0 3px rgba(243, 116, 53, .12);
}

.tag {
  border-radius: 4px;
  font-weight: 600;
}

body.hr-workspace-mode {
  background: var(--background);
}

.hr-workspace {
  min-height: 100vh;
  background: var(--background);
}

.hr-content {
  padding: 0;
}

.hr-body {
  grid-template-columns: 248px minmax(0, 1fr);
  gap: 0;
  min-height: 100vh;
}

.hr-menu {
  top: 0;
  height: 100vh;
  max-height: 100vh;
  padding: 16px 12px;
  gap: 16px;
  border: 0;
  border-radius: 0;
  background: var(--primary-dark);
  box-shadow: 4px 0 16px rgba(16, 24, 40, .12);
  backdrop-filter: none;
}

.hr-menu-brand {
  min-height: 56px;
  padding: 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: none;
}

.hr-menu-brand::before {
  display: none;
}

.hr-menu .hr-menu-brand strong {
  color: #fff;
  font-size: 14px;
}

.hr-menu .hr-menu-brand small {
  color: #aeb8c6;
  font-size: 11px;
  font-weight: 500;
}

.hr-sector-title {
  padding: 5px 10px;
  color: #8591a2;
  font-size: 10px;
  font-weight: 600;
}

.hr-sector-title svg {
  color: #8591a2;
}

.hr-menu button {
  min-height: 46px;
  padding: 8px 10px;
  border-radius: 6px;
  color: #d9dee7;
  font-weight: 500;
}

.hr-menu .nav-icon {
  border-radius: 4px;
  color: #aeb8c6;
  background: transparent;
}

.hr-menu button span:not(.nav-icon) {
  color: #97a2b2;
  font-weight: 400;
}

.hr-menu button:hover,
.hr-menu button.active {
  transform: none;
  color: #fff;
  border-color: transparent;
  background: rgba(255, 255, 255, .09);
  box-shadow: none;
}

.hr-menu button.active::before {
  left: -12px;
  top: 4px;
  bottom: 4px;
  width: 3px;
  border-radius: 0 3px 3px 0;
  background: #f37435;
}

.hr-menu button.active .nav-icon,
.hr-menu button:hover .nav-icon {
  color: #f37435;
  background: transparent;
  box-shadow: none;
}

.hr-menu button:hover span:not(.nav-icon),
.hr-menu button.active span:not(.nav-icon) {
  color: #cbd2dc;
}

.hr-main {
  gap: 18px;
  padding: 0 28px 40px;
}

.hr-top {
  position: sticky;
  top: 0;
  z-index: 20;
  display: grid;
  grid-template-columns: auto minmax(420px, 1fr) auto;
  min-height: 72px;
  margin: 0 -28px;
  padding: 14px 28px;
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(10px);
}

.hr-brandline strong {
  color: var(--text-primary);
  font-size: 14px;
}

.hr-brandline small {
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 500;
}

.workspace-switcher {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: var(--surface-muted);
  justify-self: center;
}

.workspace-switcher button {
  min-height: 32px;
  padding: 7px 12px;
  border: 0;
  border-radius: 5px;
  color: #667085;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
}

.workspace-switcher button:hover {
  color: #344054;
}

.workspace-switcher button.active {
  color: #b54708;
  background: #fff;
  box-shadow: 0 1px 3px rgba(16, 24, 40, .12);
}

.hr-contextbar {
  padding: 0 0 12px;
  border-bottom-color: var(--border);
}

.hr-context-icon {
  width: 38px;
  height: 38px;
  border-radius: 6px;
  color: #f37435;
  background: #fff3ed;
  box-shadow: none;
}

.hr-contextbar h1 {
  color: var(--text-primary);
  font-size: 22px;
  font-weight: 600;
}

.hr-contextbar p {
  color: var(--text-secondary);
  font-weight: 400;
}

.hr-panel {
  padding: 20px;
}

.workspace-overview {
  display: grid;
  gap: 18px;
}

.workspace-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px;
  border: 1px solid #fed7c3;
  border-radius: 8px;
  background: linear-gradient(110deg, #fff8f3, #fff 64%);
}

.workspace-hero h2 {
  max-width: 760px;
  margin: 0;
  color: var(--text-primary);
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -.02em;
}

.workspace-hero p:not(.eyebrow) {
  max-width: 760px;
  margin: 8px 0 0;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.55;
}

.workspace-metrics .metric {
  border-top: 3px solid #f37435;
  border-radius: 7px;
}

.workspace-metrics .metric::before {
  background: linear-gradient(135deg, rgba(243, 116, 53, .08), transparent 55%);
}

.workspace-metrics .metric-value,
.workspace-metrics .metric:nth-child(n) .metric-value {
  color: #182230;
}

.workspace-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.workspace-link-card {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 3px 12px;
  min-height: 118px;
  padding: 18px;
  text-align: left;
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text-primary);
  background: #fff;
}

.workspace-link-card:hover {
  border-color: #f7ae8a;
  box-shadow: var(--shadow-panel);
}

.workspace-link-card > span {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 6px;
  color: #f37435;
  background: #fff3ed;
}

.workspace-link-card svg {
  width: 18px;
  height: 18px;
}

.workspace-link-card strong {
  align-self: end;
  font-size: 14px;
}

.workspace-link-card small {
  color: var(--text-secondary);
  line-height: 1.45;
}

.workspace-pipeline {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.workspace-pipeline article {
  display: grid;
  gap: 5px;
  padding: 16px;
  border: 1px solid var(--border);
  border-top: 3px solid #f37435;
  border-radius: 7px;
  background: #fff;
}

.workspace-pipeline article strong {
  font-size: 24px;
}

.workspace-pipeline article small {
  color: var(--text-secondary);
}

.embedded-module > .topbar {
  display: none;
}

.embedded-module .card:first-child {
  margin-top: 0;
}

#jobModal.show,
#employeeModal.show {
  display: block;
  padding: 0;
  background: var(--background);
  backdrop-filter: none;
}

#jobModal .ats-modal-card,
#employeeModal .ats-modal-card {
  width: 100vw;
  height: 100dvh;
  max-height: none;
  border: 0;
  border-radius: 0;
  background: var(--background);
  box-shadow: none;
  animation: none;
}

#jobModal .modal-head,
#employeeModal .modal-head {
  min-height: 76px;
  padding: 15px max(24px, calc((100vw - 1180px) / 2));
  border-bottom: 1px solid var(--border);
  background: #fff;
}

#jobModal .modal-head h2,
#employeeModal .modal-head h2 {
  font-size: 20px;
  font-weight: 600;
}

.flow-step-nav {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(130px, 1fr);
  gap: 0;
  overflow-x: auto;
  padding: 0 max(24px, calc((100vw - 1180px) / 2));
  border-bottom: 1px solid var(--border);
  background: #fff;
}

.flow-step-nav button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 58px;
  padding: 10px 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  color: #667085;
  background: transparent;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}

.flow-step-nav button span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid #d0d5dd;
  border-radius: 50%;
  font-size: 11px;
  background: #fff;
}

.flow-step-nav button.active {
  color: #b54708;
  border-bottom-color: #f37435;
}

.flow-step-nav button.active span {
  color: #fff;
  border-color: #f37435;
  background: #f37435;
}

#jobModal .ats-modal-scroll,
#employeeModal .ats-modal-scroll {
  padding: 28px max(24px, calc((100vw - 980px) / 2)) 40px;
  background: var(--background);
}

#jobModal .ats-modal-grid,
#employeeModal .ats-modal-grid {
  grid-template-columns: 1fr;
  max-width: 980px;
  margin: 0 auto;
}

#jobModal .ats-modal-main,
#jobModal .ats-modal-side,
#employeeModal .ats-modal-main,
#employeeModal .ats-modal-side {
  display: contents;
}

#jobModal [data-job-step],
#employeeModal [data-employee-step] {
  display: none;
}

#jobModal [data-job-step].active,
#employeeModal [data-employee-step].active {
  display: block;
}

#jobModal .ats-step,
#employeeModal .ats-step {
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}

#jobModal .ats-step h3,
#employeeModal .ats-step h3 {
  margin-bottom: 16px;
  color: var(--text-primary);
  font-size: 17px;
  font-weight: 600;
}

.invite-delivery-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0;
  padding: 14px 16px;
  border: 1px solid #d7dee8;
  border-radius: 10px;
  background: #f8fafc;
  color: #233044;
  font-size: 14px;
  font-weight: 700;
}

.invite-delivery-choice input {
  width: 18px;
  height: 18px;
  accent-color: #f37435;
}

#jobModal .ats-modal-footer,
#employeeModal .ats-modal-footer {
  padding: 12px max(24px, calc((100vw - 1180px) / 2));
  background: #fff;
}

[hidden] {
  display: none !important;
}

@media (max-width: 980px) {
  .hr-body {
    grid-template-columns: 210px minmax(0, 1fr);
  }

  .hr-main {
    padding-right: 18px;
    padding-left: 18px;
  }

  .hr-top {
    grid-template-columns: 1fr auto;
    margin-right: -18px;
    margin-left: -18px;
    padding-right: 18px;
    padding-left: 18px;
  }

  .workspace-switcher {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: stretch;
    order: 3;
  }

  .workspace-switcher button {
    flex: 1;
  }

  .workspace-card-grid,
  .workspace-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .hr-body {
    display: block;
  }

  .hr-menu {
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    padding: 10px 14px;
    border-radius: 0;
  }

  .hr-menu-brand,
  .hr-sector-title {
    display: none;
  }

  .hr-menu-scroll,
  .hr-nav-sector {
    display: flex;
    gap: 5px;
    overflow-x: auto;
  }

  .hr-menu button {
    width: auto;
    min-width: max-content;
  }

  .hr-menu button span:not(.nav-icon) small {
    display: none;
  }

  .hr-main {
    padding: 0 14px 30px;
  }

  .hr-top {
    position: relative;
    grid-template-columns: 1fr auto;
    margin: 0 -14px;
    padding: 12px 14px;
  }

  .hr-brandline small {
    display: none;
  }

  .workspace-switcher {
    overflow-x: auto;
    justify-content: flex-start;
  }

  .workspace-switcher button {
    flex: 0 0 auto;
  }

  .hr-contextbar {
    padding-top: 18px;
  }

  .workspace-hero {
    align-items: flex-start;
    flex-direction: column;
    padding: 20px;
  }

  .workspace-card-grid,
  .workspace-metrics {
    grid-template-columns: 1fr;
  }

  #jobModal .modal-head,
  #employeeModal .modal-head {
    align-items: flex-start;
    padding: 12px 14px;
  }

  #jobModal .modal-head .page-subtitle,
  #employeeModal .modal-head .page-subtitle {
    display: block;
    margin-top: 4px;
  }

  #jobModal .modal-head .btn,
  #employeeModal .modal-head .btn {
    min-width: auto;
    font-size: 0;
  }

  #jobModal .modal-head .btn::after,
  #employeeModal .modal-head .btn::after {
    content: "Fechar";
    font-size: 12px;
  }

  .flow-step-nav {
    justify-content: start;
    padding: 0 10px;
  }

  #jobModal .ats-modal-scroll,
  #employeeModal .ats-modal-scroll {
    padding: 16px 14px 28px;
  }

  #jobModal .ats-step,
  #employeeModal .ats-step {
    padding: 18px;
  }

  #jobModal .ats-modal-footer,
  #employeeModal .ats-modal-footer {
    align-items: stretch;
    padding: 10px 14px;
  }

  #jobModal .ats-modal-footer > .tag,
  #employeeModal .ats-modal-footer > .tag {
    display: none;
  }

  #jobModal .ats-modal-footer .top-actions,
  #employeeModal .ats-modal-footer .top-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }
}

/* NN-4959: people journey, keyboard and mobile first. */
.journey-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:12px 0 24px; }
.journey-heading h1 { font-size:clamp(24px,3vw,36px); line-height:1.2; margin:8px 0 12px; }
.journey-heading p { color:var(--muted); max-width:680px; }
.journey-tabs { display:flex; overflow:auto; gap:8px; padding:6px 2px 20px; }
.journey-tabs button { flex-shrink:0; min-height:44px; padding:10px 16px; border:1px solid var(--line,#e4dce1); background:white; border-radius:10px; color:var(--ink); cursor:pointer; font:inherit; }
.journey-tabs button.active { background:var(--wine); color:white; border-color:var(--wine); }
.journey-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-bottom:20px; }
.journey-filters { display:grid; grid-template-columns:2fr 1fr 1fr 1fr auto; align-items:end; gap:12px; }
.journey-filters label, #journeyNote label { display:grid; gap:8px; font-size:13px; font-weight:600; }
.journey-filters input,.journey-filters select,.journey-editor input,.journey-editor select,.journey-editor textarea { width:100%; min-width:0; min-height:44px; }
.journey-caption { font-size:12px; color:var(--muted); margin:18px 0; }
.journey-list { display:grid; gap:10px; }
.journey-record { width:100%; display:flex; justify-content:space-between; text-align:left; align-items:center; gap:20px; border:1px solid #ded5db; border-radius:12px; padding:18px; background:white; color:var(--ink); font:inherit; cursor:pointer; }
.journey-record:hover,.journey-person:hover { border-color:var(--wine); background:#fcf8fa; }
.journey-record-main,.journey-record-status { display:grid; gap:8px; }
.journey-record-main strong { font-size:16px; overflow-wrap:anywhere; }
.journey-record-main small,.journey-record-main span,.journey-record-status small { color:#665763; font-size:12px; }
.journey-record-status { flex-shrink:0; text-align:right; justify-items:end; }
.journey-empty { padding:36px 12px; text-align:center; }
.journey-people,.journey-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.journey-person { display:grid; gap:10px; border:1px solid #ded5db; border-radius:12px; padding:20px; background:white; text-align:left; cursor:pointer; font:inherit; }
.journey-person small { color:var(--wine); }
.journey-editor { margin-top:18px; }
.journey-editor h2 { margin-bottom:16px; }
.journey-editor .form-grid { margin:20px 0; }
.journey-editor input:disabled,.journey-editor textarea:disabled,.journey-editor select:disabled { opacity:1; background:#f5f1f4; color:#5b5057; }
.journey-callout { padding:16px; border-left:3px solid var(--wine); background:#f8f0f4; border-radius:8px; line-height:1.6; margin-bottom:20px; }
.journey-note { padding:18px 0; border-bottom:1px solid #e4dce1; overflow-wrap:anywhere; }
.journey-text { white-space:pre-wrap; line-height:1.7; overflow-wrap:anywhere; }
.journey-editor details { margin:22px 0; }
.journey-editor summary { cursor:pointer; padding:10px 0; font-weight:600; }
#journeyNote { display:grid; gap:14px; margin:22px 0; }
#journeyNote button { justify-self:start; }
#journeyFormError,#journeyNoteError { color:#a12234; min-height:20px; }
.journey-timeline { display:grid; gap:20px; padding-left:22px; }
.journey-timeline li strong,.journey-timeline li span { display:block; margin:6px 0; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #8e4266; outline-offset:3px; }
@media(max-width:980px) { .journey-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .journey-filters { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:720px) {
  body:not(.public-jobs-mode) .login-screen:not(.hidden) { display:flex !important; flex-direction:column; padding:20px; gap:24px; }
  .login-card { order:-1; width:100%; margin:0; }
  .login-story { width:100%; min-height:0; padding:20px; }
  .login-preview { display:none; }
  .journey-heading { align-items:flex-start; flex-direction:column; }
  .journey-heading .btn { width:100%; }
  .journey-filters,.journey-people,.journey-comparison { grid-template-columns:1fr; }
  .journey-record { align-items:flex-start; flex-direction:column; gap:12px; }
  .journey-record-status { text-align:left; justify-items:start; }
  .journey-stats .metric { padding:14px; }
  .journey-editor .form-grid { grid-template-columns:1fr; }
  .journey-editor .field.full { grid-column:auto; }
}

.login-screen.hidden { display:none !important; }
@media(max-width:720px) { .login-card { min-height:0 !important; padding:28px 18px !important; } }

/* NN-4964 — careers: brand, vacancy discovery and accessible application. */
.public-jobs-mode .public-careers {
  background: #fff;
  color: #281b24;
  padding: 0 clamp(20px, 4vw, 64px);
}
.public-jobs-mode .public-careers-inner { width: min(1200px, 100%); gap: 0; }
.public-careers [hidden] { display: none !important; }
.public-careers :is(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--career-accent); outline-offset: 4px; }
.public-careers-header { min-height: 102px; border-bottom: 1px solid #ece6e9; }
.public-careers-brand img { max-width: 156px; height: 34px; }
.careers-brand-label { border-left: 1px solid #dacfd5; padding-left: 18px; color: #665a62; font-size: 14px; font-weight: 500; }
.public-careers-header nav a { color: #4e4149; font-size: 14px; font-weight: 600; }
.public-careers-header nav .careers-nav-cta { border: 1px solid var(--career-primary); border-radius: 999px; padding: 12px 22px; color: var(--career-primary); }
.public-careers-header nav .careers-nav-cta:hover { color: #fff; background: var(--career-primary); }
.public-jobs-mode .public-careers .careers-landing-hero {
  grid-template-columns: minmax(0,1.2fr) minmax(0,.85fr); gap: clamp(32px, 6vw, 88px);
  padding: 72px 0 80px; border: 0; border-radius: 0; box-shadow: none; background: transparent; align-items: center;
}
.public-jobs-mode .careers-landing-hero h1 { color: var(--career-primary); font-size: clamp(40px, 5.2vw, 68px); font-weight: 800; line-height: 1.07; letter-spacing: -.045em; max-width: 680px; }
.public-jobs-mode .public-careers .eyebrow { color: #8a3b19; letter-spacing: .16em; font-size: 11px; font-weight: 750; margin: 0 0 18px; }
.public-jobs-mode .careers-landing-hero .public-careers-hero-copy > p:not(.eyebrow) { color: #665a62; font-size: 18px; line-height: 1.75; max-width: 540px; margin: 24px 0 30px; }
.public-jobs-mode .public-careers .btn { box-shadow: none; border-radius: 999px; font-size: 14px; font-weight: 700; min-height: 48px; padding: 13px 23px; text-decoration: none; gap: 12px; }
.public-jobs-mode .public-careers .btn.primary { background: var(--career-primary); color: #fff; border: 1px solid var(--career-primary); margin: 0; }
.public-jobs-mode .public-careers .btn.primary:hover { background: color-mix(in srgb,var(--career-primary),#000 16%); transform: translateY(-1px); }
.public-jobs-mode .public-careers .btn.soft { background: #f8f3f5; border: 1px solid #e5dbe0; color: var(--career-primary); }
.public-careers-hero-actions { gap: 24px; }
.public-careers .public-careers-text-link { color: var(--career-primary); font-size: 14px; margin: 0; }
.public-jobs-mode .public-careers .careers-feature { position: relative; min-height: 416px; overflow: hidden; border-radius: 8px 80px 8px 8px; background: var(--career-primary); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; padding: 30px; isolation: isolate; }
.careers-feature-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.careers-feature:has(.careers-feature-photo)::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,rgba(22,8,18,.92),rgba(22,8,18,.05)); z-index: -1; }
.careers-signal-art { position: absolute; inset: 0; z-index: -1; overflow: hidden; }
.careers-signal-art i { position: absolute; border: 1px solid #ffffff30; width: 320px; height: 320px; border-radius: 50%; top: -150px; right: -40px; }
.careers-signal-art i:nth-child(2) { width: 440px; height: 440px; top: -210px; right: -100px; }
.careers-signal-art i:nth-child(3) { width: 560px; height: 560px; top: -270px; right: -160px; }
.public-jobs-mode .public-careers .careers-signal-art > span { position: absolute; right: 35px; top: 18px; color: var(--career-accent); font: 150px/1 Arial,sans-serif; transform: rotate(-5deg); }
.careers-feature-copy { margin-top: 155px; display: grid; gap: 12px; }
.public-jobs-mode .public-careers .careers-feature-copy > span { color: #fff; opacity: .82; font-size: 13px; }
.public-jobs-mode .public-careers .careers-feature-copy strong { font-size: 38px; line-height: 1.12; letter-spacing: -.035em; }
.careers-open-count { display: flex; align-items: center; gap: 16px; border-top: 1px solid #ffffff40; margin-top: 28px; padding-top: 18px; text-decoration: none; color: #fff; }
.public-jobs-mode .public-careers .careers-open-count strong { font-size: 34px; line-height: 1; font-weight: 500; }
.public-jobs-mode .public-careers .careers-open-count span { font-size: 13px; color: #fff; }
.public-jobs-mode .public-careers .careers-open-count span:last-child { margin-left: auto; font-size: 24px; }
.public-careers :is(h2,h3) { color: var(--career-primary); letter-spacing: -.03em; }
.public-careers h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.2; }
.public-careers-opportunities { padding: 46px 0 72px; border-top: 1px solid #e7dee3; scroll-margin-top: 24px; }
.careers-filters { display: grid; grid-template-columns: 1.7fr 1fr 1fr; gap: 16px; padding: 28px 0 10px; }
.public-careers :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { background: #fff; border: 1px solid #ccbec6; border-radius: 8px; color: #281b24; min-height: 48px; font-size: 16px; padding: 12px; box-shadow: none; }
.public-careers .field > label { color: #51434c; font-size: 13px; font-weight: 600; }
.careers-results { color: #756670; font-size: 13px; margin: 10px 0 22px; }
.public-job-list { display: grid; gap: 16px; }
.public-careers .public-job-card { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 30px; border: 1px solid #e0d6dc; border-radius: 12px; box-shadow: none; background: #fff; }
.public-careers .public-job-card:hover { border-color: var(--career-primary); background: #fdfbfc; }
.public-careers .public-job-card > div { min-width: 0; max-width: 790px; }
.public-careers .public-job-card > div > span { font-size: 11px; font-weight: 750; color: #8a3b19; letter-spacing: .12em; }
.public-careers .public-job-card h3 { margin: 10px 0 12px; font-size: 25px; line-height: 1.25; }
.public-careers .public-job-card p { font-size: 15px; line-height: 1.7; color: #665a62; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.public-careers .public-job-card .btn { flex-shrink: 0; }
.public-careers .ats-meta { gap: 8px; margin-top: 20px; display: flex; flex-wrap: wrap; }
.public-careers .ats-meta span { background: #f5f0f3; color: #5e4c58; border: 0; padding: 7px 10px; border-radius: 5px; font-size: 12px; font-weight: 500; }
.public-careers-about { background: #faf7f9; padding: 56px 40px; gap: 60px; border-radius: 14px; margin-bottom: 60px; }
.public-careers-about p { color: #665a62; line-height: 1.8; font-size: 15px; }
.public-careers-values { counter-reset: value; gap: 0; }
.public-careers-values article { counter-increment: value; position: relative; border: 0; border-radius: 0; border-bottom: 1px solid #e5d9e0; background: transparent; padding: 22px 0 22px 44px; box-shadow: none; }
.public-careers-values article:first-child { padding-top: 0; }
.public-careers-values article:last-child { border-bottom: 0; }
.public-careers-values article::before { content: '0' counter(value); position: absolute; left: 0; color: #a65732; font-size: 12px; font-weight: 600; top: 25px; }
.public-careers-values article:first-child::before { top: 3px; }
.public-careers-values strong { color: var(--career-primary); font-size: 18px; }
.public-careers-values p { margin: 8px 0 0; }
.careers-empty { padding: 48px 24px; border: 1px dashed #d9cbd3; border-radius: 12px; text-align: center; background: #fdfbfc; }
.careers-empty > span { color: var(--career-primary); font-size: 36px; }
.careers-empty p { color: #665a62; line-height: 1.7; }
.public-careers-footer { border-color: #e7dee3; padding: 20px 0; min-height: 96px; color: #756670; }
.public-jobs-mode .public-careers-job-hero { margin: 18px 0 36px; padding: 40px; border-radius: 14px; box-shadow: none; background: var(--career-primary); }
.public-jobs-mode .public-careers-job-hero .eyebrow { color: #ffd4bc; }
.public-jobs-mode .public-careers-job-hero h1 { color: #fff; font-size: clamp(32px,4vw,48px); letter-spacing: -.035em; }
.public-jobs-mode .public-careers-job-hero p { color: #f0e1e9; }
.public-careers-back { margin-top: 28px; padding: 10px 0; }
.public-job-layout { align-items: start; gap: 32px; padding-bottom: 48px; }
.public-careers .public-job-description { border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 12px 0; }
.public-job-description .notice { background: transparent; border: 0; border-bottom: 1px solid #eee7eb; border-radius: 0; padding: 20px 0; box-shadow: none; }
.public-job-description .notice small { color: #665a62; white-space: pre-line; font-size: 14px; line-height: 1.8; }
.public-careers .public-job-application { padding: 32px; border: 1px solid #dfd4db; box-shadow: 0 12px 36px #480d2c06; border-radius: 14px; background: #fff; }
.candidate-form-heading h2 { font-size: 28px; }
.candidate-form-heading p { color: #756670; line-height: 1.7; }
.public-careers .candidate-step-nav button.active { background: var(--career-primary); color: #fff; border-color: var(--career-primary); }
.public-careers .candidate-step-nav button.active small { color: #fff; }
.public-careers .candidate-form-footer { justify-content: flex-end; padding-top: 22px; border-top: 1px solid #e5dbe0; }
.candidate-form-footer [data-candidate-previous] { margin-right: auto; }
.candidate-question-choice { border: 0; padding: 0; margin: 0; min-width: 0; }
.candidate-question-choice legend { font-size: 15px; font-weight: 650; color: #392631; line-height: 1.5; margin-bottom: 8px; }
.candidate-question-choice > small { display: block; margin-bottom: 12px; color: #756670; }
.candidate-choice-list { display: grid; gap: 10px; }
.public-careers .candidate-choice { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid #daceD5; border-radius: 8px; cursor: pointer; font-size: 15px; line-height: 1.55; background: #fff; color: #392631; }
.public-careers .candidate-choice:has(input:checked) { border-color: var(--career-primary); background: #faf3f7; }
.public-careers .candidate-choice input { flex: 0 0 18px; width: 18px; height: 18px; min-height: 0; margin: 3px 0 0; accent-color: var(--career-primary); }
.public-careers .candidate-choice:focus-within { outline: 2px solid var(--career-primary); outline-offset: 2px; }
.candidate-question-choice.is-invalid .candidate-choice { border-color: #b42318; }
.question-card [data-question-choices] { padding: 16px 0; }
.question-card [data-question-choices][hidden] { display: none; }
.question-card [data-question-choices] textarea { min-height: 120px; }
.question-card small { font-size: 12px; line-height: 1.5; color: #657184; }
@media (max-width: 900px) {
  .public-jobs-mode .public-careers .careers-landing-hero { grid-template-columns: 1fr 1fr; gap: 28px; padding: 44px 0; }
  .public-jobs-mode .public-careers .careers-feature { padding: 24px; min-height: 370px; }
  .public-jobs-mode .public-careers .careers-feature-copy strong { font-size: 32px; }
  .public-careers .public-job-card { align-items: start; flex-direction: column; gap: 18px; }
  .public-careers-about { grid-template-columns: 1fr; gap: 24px; padding: 32px; }
}
@media (max-width: 640px) {
  .public-careers-header { flex-direction: row; flex-wrap: wrap; padding: 20px 0; gap: 20px; }
  .public-careers-header nav { width: 100%; gap: 16px; justify-content: space-between; flex-wrap: wrap; }
  .public-careers-header nav a { font-size: 12px; }
  .public-careers-header nav .careers-nav-cta { padding: 10px 16px; }
  .public-careers-brand img { max-width: 130px; height: 28px; }
  .public-jobs-mode .public-careers .careers-landing-hero { grid-template-columns: 1fr; padding: 40px 0; gap: 32px; }
  .public-jobs-mode .careers-landing-hero h1 { font-size: 42px; }
  .public-jobs-mode .careers-landing-hero .public-careers-hero-copy > p:not(.eyebrow) { font-size: 16px; margin: 20px 0 24px; }
  .public-jobs-mode .public-careers .careers-feature { min-height: 300px; border-top-right-radius: 60px; }
  .careers-feature-copy { margin-top: 85px; }
  .public-jobs-mode .public-careers .careers-feature-copy strong { font-size: 32px; }
  .public-jobs-mode .public-careers .careers-signal-art > span { font-size: 120px; top: 10px; }
  .public-careers-hero-actions { gap: 20px; }
  .careers-filters { grid-template-columns: 1fr; gap: 14px; }
  .public-careers-opportunities { padding: 36px 0 44px; }
  .public-careers .public-job-card { padding: 22px; }
  .public-careers .public-job-card .btn { width: 100%; justify-content: center; }
  .public-careers .public-job-card h3 { font-size: 23px; }
  .public-careers-about { padding: 28px 22px; margin-bottom: 32px; }
  .public-careers-footer { align-items: start; flex-direction: column; gap: 14px; }
  .public-jobs-mode .public-careers-job-hero { padding: 26px; }
  .public-job-layout { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .public-careers .public-job-application { padding: 22px 18px; }
  .candidate-form-footer .btn { min-width: 0; padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) { .public-careers * { scroll-behavior: auto !important; transition: none !important; } }

.public-jobs-mode main { margin: 0; padding: 0; max-width: none; }
.public-jobs-mode { background: #fff; }
.public-jobs-mode .public-careers .careers-feature { border: 0; }

/* NN-4968: employee stories, progressively disclosed text and on-demand video. */
.public-jobs-mode .public-careers-testimonials { scroll-margin-top: 32px; padding: clamp(32px, 6vw, 72px) 0; }
.stories-heading { display: flex; justify-content: space-between; align-items: end; gap: 32px; margin-bottom: 32px; }
.stories-heading > p { max-width: 360px; color: #647084; line-height: 1.65; margin: 0; }
.public-jobs-mode .stories-heading h2 { font-size: clamp(32px, 4vw, 52px); line-height: 1.1; letter-spacing: -.035em; }
.stories-carousel { min-width: 0; }
#storiesTrack { touch-action: pan-y pinch-zoom; border-radius: 24px; }
.story-card { display: grid; grid-template-columns: minmax(180px, .7fr) minmax(0, 1.8fr); min-height: 320px; border: 1px solid #e3e6eb; border-radius: 24px; overflow: hidden; background: #fff; }
.story-card[hidden] { display: none; }
.story-portrait { background: #f2f0ec; height: 100%; overflow: hidden; }
.story-portrait img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center 20%; }
.story-copy { align-self: center; min-width: 0; padding: clamp(24px, 3vw, 36px); }
.story-copy h3 { font-size: 16px; margin: 0 0 18px; font-weight: 750; color: #596578; }
.story-copy blockquote { margin: 0; font-size: clamp(21px, 2.2vw, 28px); line-height: 1.4; letter-spacing: -.02em; font-weight: 650; color: var(--career-primary); white-space: pre-line; overflow-wrap: anywhere; }
.story-card:not(:has(.story-portrait)) { grid-template-columns: 1fr; }
.stories-controls { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
.story-nav { width: 44px; height: 44px; border: 1px solid #dfe5ec; border-radius: 50%; background: #fff; color: var(--career-primary); font-size: 24px; cursor: pointer; }
.story-nav:hover { background: #fff5ee; border-color: var(--career-primary); }
.stories-dots { display: flex; }
.story-dot { display: grid; place-items: center; width: 32px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.story-dot span { width: 8px; height: 8px; border-radius: 50%; background: #bcc4ce; }
.story-dot[aria-current="true"] span { width: 24px; border-radius: 8px; background: var(--career-primary); }
.stories-position { font-size: 13px; color: #596578; width: 70px; overflow: hidden; white-space: nowrap; }
.story-nav:focus-visible, .story-dot:focus-visible, #storiesTrack:focus-visible { outline: 3px solid var(--career-accent); outline-offset: 3px; }
.story-actions { display: flex; flex-wrap: wrap; gap: 12px 24px; }
.story-actions:empty { display: none; }
.story-watch { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; border: 0; background: none; padding: 0; margin-top: 26px; color: var(--career-primary); font: inherit; font-size: 14px; font-weight: 750; min-height: 44px; }
.story-play-icon { display: grid; place-items: center; background: var(--career-primary); color: white; width: 40px; height: 40px; border-radius: 50%; font-size: 12px; }
.story-watch:hover .story-play-icon { background: #923e13; }
.story-full { border-top: 1px solid #e3e6eb; margin-top: 24px; }
.story-full summary { cursor: pointer; padding: 18px 0; font-size: 14px; font-weight: 650; color: var(--career-primary); }
.story-full summary span { float: right; }
.story-full[open] summary span { transform: rotate(45deg); }
.story-full p { white-space: pre-line; overflow-wrap: anywhere; color: #465366; line-height: 1.8; font-size: 16px; margin: 0 0 4px; }
.story-player { width: min(900px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); padding: 0; border: 0; border-radius: 18px; background: #142031; color: #fff; }
.story-player::backdrop { background: rgb(10 17 28 / 85%); }
.story-player header { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; }
.story-player header h2 { color: #fff; margin: 0; font-size: 20px; }
.story-player .btn { background: #fff; color: #233044; }
.story-player video { display: block; width: 100%; max-height: calc(100dvh - 140px); background: #000; }
.story-player p { padding: 12px 20px; }
.story-watch:focus-visible, .story-full summary:focus-visible { outline: 3px solid var(--career-accent); outline-offset: 5px; border-radius: 4px; }
.story-editor-card { min-width: 0; border: 1px solid #dfe5ec; border-radius: 16px; margin: 18px 0; padding: 20px; }
.story-editor-card legend { padding: 0 8px; font-weight: 750; }
.story-editor-card label.field { display: flex; flex-direction: column; font-weight: 500; gap: 6px; }
.story-editor-card textarea { width: 100%; min-height: 90px; }
.story-editor-card textarea[data-story-field="quote"] { min-height: 170px; }
.story-editor-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.career-testimonials-editor #addCareerTestimonial { justify-self: start; }
@media (max-width: 700px) {
  .stories-heading { display: block; }
  .stories-heading > p { margin-top: 20px; }
  .story-card { display: block; min-height: 0; }
  .story-portrait { width: 80px; height: 80px; border-radius: 50%; margin: 24px 24px 0; }
  .story-copy { padding: 20px 24px 24px; }
  .stories-controls { gap: 6px; }
  .stories-position { width: 48px; }
}

/* NN-4974: explicit control for automatic story rotation. */
.story-rotation { flex-basis: 100%; min-height: 44px; border: 0; background: transparent; color: var(--career-primary); font: inherit; font-size: 13px; font-weight: 650; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.story-rotation:focus-visible { outline: 3px solid var(--career-accent); outline-offset: 2px; border-radius: 6px; }

/* NN-5014: one stable shell for daily work and a separate settings entry. */
.people-topbar { display:flex; align-items:center; justify-content:flex-end; gap:12px; padding:0; margin-bottom:12px; }
.people-topbar-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.shell-icon-button { display:grid; place-items:center; width:40px; height:40px; border:0; border-radius:50%; background:transparent; color:var(--text-secondary); }
.shell-icon-button:hover { background:var(--background); }
.shell-icon-button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.shell-icon-button svg { width:22px; height:22px; }
.shell-icon-button[hidden], .profile-menu[hidden] { display:none; }
.profile-control { position:relative; }
#profileToggle { display:flex; align-items:center; gap:10px; background:transparent; border-radius:10px; padding:4px 8px; }
#profileToggle .avatar { width:36px; height:36px; font-size:12px; background:var(--primary-dark); color:white; }
#shellUserName { max-width:200px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.profile-menu { position:absolute; top:calc(100% + 8px); right:0; width:290px; max-width:calc(100vw - 32px); background:white; border:1px solid var(--border); border-radius:12px; box-shadow:0 12px 32px #23304426; padding:16px; z-index:12; }
.profile-menu > strong { display:block; margin-bottom:12px; color:var(--text-secondary); font-size:13px; }
.profile-menu > button { display:block; width:100%; padding:12px; text-align:left; border-radius:6px; background:white; }
.profile-menu > button:hover { background:var(--background); }
.profile-menu .role-switch { margin:12px 0; width:100%; background:var(--background); padding:4px; border:1px solid var(--border); }
.profile-menu .role-switch button { color:var(--text-primary); font-size:12px; min-width:0; padding:10px 6px; }
.profile-menu .role-switch button.active { background:var(--primary-dark); color:white; }
.settings-dialog { width:min(840px,calc(100vw - 32px)); max-height:85vh; overflow:auto; margin:auto; padding:28px; border:1px solid var(--border); border-radius:16px; background:white; color:var(--text-primary); box-shadow:0 24px 80px #10182840; }
.settings-dialog::backdrop { background:#10182888; }
.settings-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.settings-heading h2 { margin:0 0 8px; font-size:24px; }
.settings-heading p { color:var(--text-secondary); }
#closeSettings { width:36px; height:36px; flex-shrink:0; border-radius:8px; font-size:24px; background:var(--background); }
#settingsDestinations section + section { margin-top:24px; }
#settingsDestinations h3 { margin:0 0 10px; font-size:14px; color:var(--text-secondary); }
.settings-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.settings-options button { display:flex; align-items:center; gap:12px; border:1px solid var(--border); border-radius:10px; padding:16px; background:white; text-align:left; }
.settings-options button:hover { border-color:var(--accent); background:var(--background); }
.settings-options svg { width:22px; height:22px; flex-shrink:0; color:var(--primary-dark); }
.settings-options strong,.settings-options small { display:block; }
.settings-options small { margin-top:5px; color:var(--text-secondary); line-height:1.4; }
.people-content { min-width:0; }
.people-content .hr-contextbar { margin-bottom:12px; }
.people-content .hr-split { grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr)); }
.people-content .table-scroll { overflow:auto; }
.people-content > .hr-panel { overflow-x:auto; }
.nav button[aria-current="page"] { background:#ffffff15; }
.people-topbar button:focus-visible,.settings-dialog button:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
@media (max-width:700px) {
  .settings-options { grid-template-columns:1fr; }
  .settings-dialog { padding:20px; }
  #shellUserName { display:none; }
  .people-topbar { gap:8px; }
  body:not(.public-jobs-mode) #main { padding:12px 16px 32px; }
  .people-content .hr-contextbar { flex-wrap:wrap; }
}

/* NN-5035: compact recruiting controls and accessible stage movement. */
.ats-icon.btn { width:36px; min-width:36px; height:36px; padding:8px; display:inline-flex; align-items:center; justify-content:center; }
.ats-icon svg,.ats-tooltip > svg,.candidate-resume-button svg { width:18px; height:18px; flex:none; }
.ats-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ats-actions .btn { margin:0; }
.ats-tooltip { position:relative; display:inline-flex; align-items:center; gap:4px; cursor:help; color:var(--muted); font-size:12px; line-height:1.4; }
.ats-tooltip [role=tooltip] { display:none; position:fixed; z-index:1000; max-width:min(340px,85vw); padding:12px 14px; border-radius:8px; background:#233044; color:white; font-size:13px; line-height:1.5; font-weight:400; white-space:normal; pointer-events:none; box-shadow:0 5px 18px #0003; }
.ats-tooltip:hover [role=tooltip],.ats-tooltip:focus [role=tooltip] { display:block; }
.ats-tooltip:focus-visible,.ats-icon:focus-visible,.candidate-name-button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.ats-candidates-table { width:100%; margin-top:14px; }
.ats-candidates-table th,.ats-candidates-table td { padding:12px 10px; vertical-align:middle; }
.ats-candidates-table td:first-child { min-width:200px; max-width:260px; overflow-wrap:anywhere; }
.ats-candidates-table td:nth-child(7) { min-width:115px; }
.ats-candidates-table .ats-profile-cell { width:48px; text-align:center; }
.ats-candidates-table .tag { white-space:normal; font-size:11px; }
.ats-candidates-table .ats-score { min-width:36px; padding:5px 8px; font-size:12px; }
.ats-candidates-table .ats-actions { flex-wrap:nowrap; }
.candidate-resume-button { display:inline-flex; align-items:center; gap:5px; padding:4px 0; font-size:12px; }
.ats-card h3 .candidate-name-button { font-size:inherit; font-weight:inherit; text-align:left; }
.ats-board-help { margin:12px 0; color:var(--muted); font-size:12px; }
.ats-kanban { display:flex; align-items:stretch; gap:14px; overflow-x:auto; padding:4px 2px 18px; }
.ats-kanban .ats-column { flex:0 0 268px; min-width:268px; min-height:280px; border:1px solid var(--line); border-radius:12px; padding:14px; transition:background .15s,border-color .15s; }
.ats-kanban .ats-column.drop-ready { border:2px dashed var(--accent); background:#fff1e8; padding:13px; }
.candidate-card[draggable=true] { cursor:grab; }
.candidate-card.dragging { opacity:.4; }
.ats-kanban[aria-busy=true] { opacity:.7; pointer-events:none; }
.ats-card-footer { display:flex; align-items:center; justify-content:space-between; gap:6px; }
.ats-empty-stage { display:block; padding:20px 4px; color:var(--muted); line-height:1.5; }
.ats-move-dialog { max-width:min(440px,90vw); border:1px solid var(--line); border-radius:14px; padding:24px; }
.ats-move-dialog::backdrop { background:#16223366; }
.ats-move-dialog form { display:flex; flex-direction:column; gap:10px; }
.stage-email-settings details { border-top:1px solid var(--line); padding:14px 0; }
.stage-email-settings summary { cursor:pointer; font-weight:700; }
.stage-email-settings form { display:grid; gap:14px; margin-top:14px; max-width:800px; }
.stage-email-toggle { display:flex; align-items:center; gap:8px; }
.stage-email-toggle input { width:auto; }
.stage-email-preview { white-space:pre-wrap; overflow-wrap:anywhere; padding:16px; background:var(--background); border:1px solid var(--line); font-family:inherit; }
@media(max-width:800px) { .ats-candidates-table { min-width:1000px; } .ats-card-head { flex-wrap:wrap; } #pipelineJob { max-width:85vw; } }
.resume-viewer { width:min(1050px,94vw); height:90vh; max-height:94vh; border:1px solid var(--line); border-radius:14px; padding:20px; }
.resume-viewer::backdrop { background:#16223399; }
.resume-viewer header,.resume-toolbar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.resume-viewer header { justify-content:space-between; }
.resume-toolbar { position:sticky; top:0; background:white; padding:12px 0; }
.resume-pages { background:#eef0f4; padding:16px; overflow:auto; text-align:center; }
.resume-pages canvas { background:white; box-shadow:0 2px 9px #0002; max-width:none; height:auto; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Recruiting email models: editing and preview stay together. */
.email-template-details { margin:18px 0; border:1px solid #e1e5ec; border-radius:12px; padding:16px; }
.email-template-details > summary { cursor:pointer; font-weight:750; color:var(--ink,#233044); }
.email-template-details > summary span { font-weight:400; font-size:13px; color:#667085; margin-left:12px; }
.email-template-details form { padding-top:20px; }
.stage-email-settings .email-template-details { padding:16px; }
.stage-email-settings .email-template-details form { max-width:none; }
.email-edit-preview { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,1fr); gap:24px; margin:20px 0; align-items:start; }
.email-edit-preview fieldset { min-width:0; border:0; padding:0; margin:0; }
.email-edit-preview legend { font-weight:700; margin-bottom:12px; }
.email-edit-preview fieldset:disabled { opacity:.65; }
.email-html-editor { display:grid; gap:8px; margin:16px 0; }
.email-html-editor > label { font-weight:650; }
.email-html-editor textarea { width:100%; box-sizing:border-box; font-family:ui-monospace,monospace; font-size:13px; line-height:1.6; resize:vertical; min-height:180px; padding:14px; border:1px solid #ccd2de; border-radius:8px; }
.email-html-editor small,.email-preview-panel > small { color:#667085; line-height:1.5; }
.email-format-toolbar { display:flex; gap:6px; flex-wrap:wrap; }
.email-format-toolbar button { border:1px solid #d4dae3; border-radius:6px; padding:6px 12px; cursor:pointer; background:white; color:#233044; }
.email-format-toolbar button:hover { background:#fff3eb; }
.email-variable-picker { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:12px 0; }
.email-variable-picker select { min-width:0; max-width:100%; padding:8px; border-radius:6px; border:1px solid #ccd2de; }
.email-preview-panel { background:#f7f8fb; padding:14px; border:1px solid #e1e5ec; border-radius:12px; }
.email-preview-panel header { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.email-preview-panel iframe { width:100%; height:570px; border:0; background:white; border-radius:8px; }
.email-preview-subject { font-size:14px; font-weight:650; overflow-wrap:anywhere; }
.email-preview-error { color:#ad2929; font-size:13px; }
.email-brand-summary { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:14px; background:#f7f8fb; border-radius:10px; }
.email-color-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:20px 0; }
.email-color-field > label { display:block; font-weight:650; margin-bottom:8px; }
.email-color-field > div { display:flex; gap:8px; align-items:center; }
.email-color-field input[type=color] { width:52px; height:42px; padding:3px; flex-shrink:0; border:1px solid #ccd2de; border-radius:7px; background:white; cursor:pointer; }
.email-color-field input[type=text] { width:100%; min-width:0; padding:10px; border:1px solid #ccd2de; border-radius:7px; font-family:ui-monospace,monospace; }
.email-color-help { font-size:13px; color:#667085; line-height:1.5; }
@media(max-width:600px) { .email-color-grid { grid-template-columns:1fr; } }
.email-brand-color { display:inline-block; width:22px; height:22px; border:1px solid #aeb8c5; border-radius:50%; }
.email-stage-controls { display:flex; flex-wrap:wrap; gap:20px; align-items:center; }
.email-stage-controls label,.email-layout-toggle { display:flex; gap:8px; align-items:center; }
.email-stage-controls input,.email-layout-toggle input { width:auto; accent-color:#f37435; }
.email-stage-controls .field label { display:block; }
@media(max-width:1100px) { .email-edit-preview { grid-template-columns:1fr; } .email-preview-panel iframe { height:620px; } }

.profile-request-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; margin:18px 0; }
.profile-request-filters label { display:grid; gap:6px; min-width:0; }
.profile-request-filters input, .profile-request-filters select { width:100%; min-width:0; padding:10px; border:1px solid #dce3ed; border-radius:8px; background:#fff; color:#233044; }
.profile-request-panel td small { display:block; margin-top:6px; }
.profile-request-panel input[type=checkbox] { width:20px; height:20px; }
.profile-request-panel .inline-actions { flex-wrap:wrap; gap:10px; }
.profile-request-panel { min-width:0; max-width:100%; box-sizing:border-box; }
.profile-request-panel .ats-card-head > div { min-width:0; max-width:100%; }
.profile-request-panel .table-scroll { max-width:100%; overflow-x:auto; }

/* NN-5052: catalog, formation editor and recruiting filters. */
.education-fields{margin:18px 0;gap:16px}
.education-fields label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:600;color:#475569;min-width:0}
.education-fields input,.education-fields select{display:block;width:100%;min-height:42px;border:1px solid #dbe2ea;border-radius:9px;padding:10px 12px;background:#fff;color:#1e293b;font:inherit}
.education-fields input[type=hidden]{display:none}
.education-fields .btn{align-self:end;width:fit-content}
[data-education-row]{border:1px solid #e2e8f0;border-radius:12px;padding:16px;margin:16px 0}
[data-catalog-merge]{padding-top:16px;border-top:1px solid #e2e8f0}
[data-catalog-merge] p{font-size:13px;color:#64748b}
[data-allow-education]{margin:16px 8px 16px 0}

/* NN-5059: internal application markers, also usable inside the resume dialog. */
.application-triage { padding: 14px; border: 1px solid #ddd5da; border-radius: 12px; margin: 10px 0; }
.application-triage p { margin: 6px 0; font-size: 13px; }
.triage-options, .triage-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.triage-filter { margin: 14px 0; }
.triage-badge { display: inline-block; margin: 5px 4px 5px 0; }
.triage-selected { background: #e4f1e1; color: #30552c; }
.triage-favorite { background: #fff0c2; color: #674700; }
.triage-review_later { background: #e5effa; color: #254668; }
.triage-not_suitable { background: #f7e4e8; color: #7d3045; }
.resume-viewer .application-triage { margin: 8px 16px; }

/* NN-5060: application-specific message fields. */
.application-email-dialog { width:min(620px,calc(100vw - 32px)); max-height:90vh; overflow:auto; }
.application-email-dialog fieldset { display:grid; gap:10px; border:1px solid #e4e7ec; border-radius:12px; padding:16px; min-width:0; }
.application-email-dialog select,.application-email-dialog textarea { width:100%; box-sizing:border-box; }
.application-email-dialog select { text-overflow:ellipsis; }
.application-email-dialog textarea { min-height:120px; }
.application-email-dialog [hidden] { display:none; }
.application-email-dialog .ats-actions { margin-top:20px; justify-content:flex-end; }
.application-email-values { border-top:1px solid #e4e7ec; padding:16px 0; }
.application-email-values > small { display:block; }
.application-email-text { white-space:pre-wrap; overflow-wrap:anywhere; }
.email-variable-help { font-size:13px; line-height:1.5; }

.application-email-dialog { max-width:620px; }
.application-email-dialog select,.application-email-dialog textarea { font:inherit; padding:10px 12px; border:1px solid #cbd2dc; border-radius:8px; background:#fff; color:#233044; }
.application-email-dialog select { min-height:44px; }
.application-email-dialog [data-custom-reason]:not([hidden]) { display:grid; gap:8px; }

/* Career track registry and focused detail dialogs. */
.cp-page-heading {display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;}
.cp-page-heading h2,.cp-page-heading h3 {margin:0 0 8px;}
.cp-row-actions {display:flex;justify-content:flex-end;align-items:center;gap:8px;white-space:nowrap;}
.cp-actions-heading {text-align:right;}
.cp-track-name {display:block;border:0;padding:0;background:none;color:var(--text-primary);font:inherit;font-weight:650;text-align:left;cursor:pointer;}
.cp-track-name:hover {color:var(--accent);text-decoration:underline;}
.cp-tracks-table small {display:block;margin-top:6px;}
.cp-track-summary {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:24px 0 32px;}
.cp-track-summary>div {padding:18px;border:1px solid var(--border);border-radius:12px;display:grid;gap:6px;}
.cp-track-summary strong {font-size:26px;}
.cp-track-summary span {color:var(--muted);}
.cp-dialog-actions {display:flex;justify-content:flex-end;gap:12px;margin-top:24px;}
.cp-track-dialog {max-width:760px;}
.cp-track-dialog textarea {min-height:120px;}
.cp-track-dialog [role=alert] {color:#b42318;}
@media(max-width:700px) {.cp-page-heading {align-items:flex-start;flex-direction:column;}.cp-track-summary {gap:8px;}.cp-track-summary>div {padding:12px;}.cp-track-summary span {font-size:12px;}.cp-tracks-table {min-width:780px;}}
.cp-track-dialog .form-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
.cp-track-dialog .field:has(textarea) {grid-column:1/-1;}
.cp-track-dialog input[type=checkbox] {width:20px;height:20px;min-height:20px;}
.cp-page-heading>div:first-child {min-width:0;}
@media(max-width:700px) {.cp-track-dialog .form-grid {grid-template-columns:minmax(0,1fr);}}

/* NN-5068: curriculum evidence belongs to each evaluator and job. */
.resume-review-panel { padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; min-width:0; }
.resume-review-panel h3,.resume-review-panel h4 { margin:0 0 10px; }
.resume-review-panel label { display:grid; gap:6px; font-weight:600; margin:12px 0; }
.resume-review-panel input,.resume-review-panel select,.resume-review-panel textarea { width:100%; min-width:0; box-sizing:border-box; padding:10px; border:1px solid var(--line); border-radius:8px; font:inherit; background:#fff; color:inherit; }
.resume-review-panel textarea { resize:vertical; }
.resume-review-help,.resume-review-entry small { color:#58616d; font-size:12px; display:block; }
.resume-review-records { margin-top:18px; }
.resume-review-entry { padding:14px 0; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.resume-review-entry dl { display:grid; gap:8px; }
.resume-review-entry dt { font-size:12px; color:#58616d; }
.resume-review-entry dd { margin:2px 0 0; }
.resume-review-notes { white-space:pre-wrap; }
.resume-viewer:has(.resume-review-layout) { width:min(1450px,96vw); }
.resume-review-layout { display:grid; grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr); gap:16px; margin-top:12px; }
.resume-review-layout > * { min-width:0; }
.resume-review-layout aside { max-height:75vh; overflow:auto; }
@media (max-width:850px) {
  .resume-review-layout { grid-template-columns:minmax(0,1fr); }
  .resume-review-layout aside { max-height:none; }
}
/* NN-5077: employee communications */
.comm-workspace{max-width:1120px;margin:0 auto;padding:8px 0 32px}
.comm-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px}
.comm-header h1{font-size:30px;line-height:1.2;margin:8px 0 12px;color:#233044}
.comm-header p{max-width:690px;color:#586679;line-height:1.6}
.comm-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff5eb;border:1px solid #f2d4b9;border-radius:12px;padding:12px 18px;margin:12px 0 20px;color:#633712}
.comm-banner[hidden]{display:none}
.comm-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:14px;margin-bottom:24px;padding:18px;background:#fff;border:1px solid #e2e7ee;border-radius:14px}
.comm-filters .field:first-child{flex:1;min-width:220px}
.comm-check{display:flex!important;gap:8px;align-items:center;font-size:13px;line-height:1.5;padding:10px 0}
.comm-check input{width:17px!important;height:17px;flex-shrink:0;accent-color:#f37435}
.comm-feed{display:grid;gap:18px;max-width:880px;margin:0 auto}
.comm-card{padding:24px!important;border:1px solid #e2e7ee!important;box-shadow:0 3px 16px #23304406}
.comm-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;color:#667386;margin-bottom:12px}
.comm-title{border:0;background:transparent;padding:0;text-align:left;color:#233044;font:inherit;cursor:pointer;line-height:1.4}
.comm-title:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.comm-excerpt,.comm-content,.comm-comment p{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.75;color:#39495d}
.comm-excerpt{margin:12px 0 20px!important}
.comm-content{margin:24px 0;font-size:15px}
.comm-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid #edf0f5;padding-top:16px;margin-top:16px}
.comm-reactions{display:flex;gap:6px;flex-wrap:wrap}
.comm-reaction{border:1px solid #dfe5ed;border-radius:20px;background:white;padding:7px 11px;cursor:pointer;color:#536176;font-size:13px;min-height:36px}
.comm-reaction span{font-size:17px}
.comm-reaction:hover,.comm-reaction.selected{background:#fff1e7;border-color:#f37435;color:#803b16}
.comm-workspace button:focus-visible,.comm-banner button:focus-visible{outline:3px solid #f37435;outline-offset:3px}
.comm-more{display:block;margin:24px auto}
.comm-detail,.comm-editor,.comm-comments{margin-top:16px;padding:28px!important}
.comm-byline{font-size:13px;color:#667386}
.comm-changes{background:#f4f7fb;border-left:3px solid #8da0b8;border-radius:6px;padding:14px 18px;margin-top:20px}
.comm-changes p{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:6px}
.comm-ack{background:#fff7ed;padding:20px;border:1px solid #f3d9bd;border-radius:10px;margin-top:24px}
.comm-ack p{margin:10px 0 16px;line-height:1.6}
.comm-management,.comm-history,.comm-report{border-top:1px solid #e2e7ee;margin-top:24px;padding-top:22px}
.comm-draft{background:#f6f8fb;padding:16px;margin-top:16px;border-radius:8px}
.comm-draft summary{cursor:pointer;font-weight:600}
.comm-comment{padding:18px 0;border-bottom:1px solid #e8ecf2}
.comm-comment header{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.comm-comment time{color:#6a7789}
.comm-hidden-comment{background:#f6f7fa;padding:16px;border:1px dashed #a6b1c0;border-radius:8px}
.comm-comments form{display:grid;gap:12px;margin-top:24px}
.comm-comments form button{justify-self:start}
.comm-error{color:#a52a2a;white-space:pre-wrap;overflow-wrap:anywhere}
.comm-error:empty{display:none}
.comm-empty{text-align:center;padding:42px 24px!important}
.comm-editor textarea{min-height:100px}
.comm-editor #commContent{min-height:250px}
@media(max-width:680px){.comm-header{display:block}.comm-header>.btn{margin-top:14px}.comm-banner{align-items:flex-start;flex-direction:column}.comm-card,.comm-detail,.comm-editor,.comm-comments{padding:18px!important}.comm-filters{display:grid;grid-template-columns:minmax(0,1fr)}.comm-filters .field:first-child{min-width:0}.comm-reaction{padding:6px 9px}.comm-card-footer{align-items:flex-start;flex-direction:column}.comm-header h1{font-size:25px}}

/* NN-5079: candidate triage workspace */
.candidate-filters { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); margin-top: 16px; }
.candidate-filters label, .candidate-search label { display: grid; gap: 6px; font-weight: 600; }
.candidate-search { display: flex; align-items: end; gap: 12px; margin-top: 20px; }
.candidate-search label { flex: 1; }
.candidate-search input, .candidate-filters select { width: 100%; min-width: 0; min-height: 42px; border: 1px solid #dbe2ea; border-radius: 9px; padding: 10px 12px; background: #fff; color: #1e293b; font: inherit; }
.candidate-filter-help { color: var(--muted); font-size: 13px; }
.candidate-education-filters { margin: 12px 0; }
.candidate-list-applications { display: grid; gap: 12px; min-width: 270px; }
.candidate-list-application { display: grid; gap: 6px; }
.candidate-list-application + .candidate-list-application { border-top: 1px solid #e2e8f0; padding-top: 12px; }
.candidate-list-application > .tag { justify-self: start; }
.candidate-list-application small { display: block; }
@media(max-width: 600px) { .candidate-filters { grid-template-columns: 1fr; } .candidate-search { flex-wrap: wrap; } }

/* NN-5090: surveys */
.sv-workspace{max-width:1100px;margin:auto}.sv-panel{margin:24px 0}.sv-card,.sv-editor{padding:24px;margin:16px 0}.sv-card>p,.sv-editor>p{line-height:1.6}.sv-deadline{padding:12px 16px;border-left:4px solid #ef6426;background:#fff4ed;border-radius:8px}.sv-form{margin:20px 0}.sv-question,.sv-question-editor{min-width:0;border:1px solid #dce3ed;border-radius:12px;padding:20px;margin:20px 0}.sv-question legend,.sv-question-editor legend{font-weight:700;padding:0 8px}.sv-question textarea,.sv-question input[type=number],.sv-matrix-row select{width:100%;padding:10px;border:1px solid #bac5d3;border-radius:8px}.sv-choice{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #dce3ed;border-radius:8px;margin:8px 0;cursor:pointer}.sv-choice input{width:18px;height:18px;accent-color:#e96325}.sv-choice:has(input:checked){background:#fff4ed;border-color:#e96325}.sv-scale{display:flex;align-items:center;gap:12px}.sv-scale input{flex:1;min-width:80px}.sv-scale output{min-width:60px}.sv-ranking{padding-left:24px}.sv-ranking li{padding:8px;border:1px solid #dce3ed;border-radius:8px;margin:8px 0;cursor:grab}.sv-ranking li span{display:inline-block;min-width:50%}.sv-matrix-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center;margin:12px 0}.sv-privacy{font-size:13px;color:#536075}.sv-editor section{margin:24px 0}.sv-editor-actions{display:flex;gap:12px;position:sticky;bottom:0;padding:16px;background:white;border-top:1px solid #dce3ed}.sv-answer-list dt{font-weight:600;margin-top:12px}.sv-answer-list dd{margin:4px 0 12px;white-space:pre-wrap;overflow-wrap:anywhere}.sv-results details{padding:14px 0;border-bottom:1px solid #dce3ed}.sv-bar{display:grid;grid-template-columns:minmax(100px,1fr) 2fr 40px;gap:12px;align-items:center;margin:8px 0}.sv-bar meter{width:100%;height:20px}.sv-card h2,.sv-card p,.sv-question legend{overflow-wrap:anywhere}.sv-editor .inline-actions{flex-wrap:wrap}.sv-editor .inline-actions select{max-width:100%;padding:8px}.sv-form [hidden]{display:none!important}.sv-form [role=alert],#surveyError{color:#b42318;white-space:pre-wrap}.sv-question:focus-within{border-color:#e96325}@media(max-width:650px){.sv-card,.sv-editor{padding:16px}.sv-question,.sv-question-editor{padding:12px}.sv-matrix-row{grid-template-columns:1fr;gap:6px}.sv-scale{flex-wrap:wrap}.sv-editor-actions{position:static;flex-wrap:wrap}.sv-panel .comm-header{align-items:flex-start}}

/* NN-5139: human ratings are independent from administrative completeness. */
/* List and pipeline: one star row; complete criteria stay in the review dialog. */
.human-rating-overview { display:flex; align-items:center; justify-content:center; width:max-content; min-height:32px; padding:6px 4px; margin:4px 0; border:0; border-radius:5px; background:transparent; cursor:pointer; }
.human-rating-overview:hover { background:#f8eff2; }
.human-rating-overview:focus-visible { outline:2px solid #632942; outline-offset:2px; }
.human-rating-overview:disabled { opacity:.6; cursor:wait; }
.human-rating-summary { margin:10px 0; padding:12px; border:1px solid #eadfe4; border-radius:10px; background:#fffaf7; min-width:0; }
.human-rating-heading,.human-rating-criteria > div { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.human-rating-heading { font-size:13px; font-weight:700; color:#632942; margin-bottom:8px; }
.human-rating-criteria { display:grid; gap:5px; font-size:12px; color:#525c6b; }
.rating-value { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; color:#632942; }
.rating-stars { display:inline-block; position:relative; font-size:15px; line-height:1; letter-spacing:1px; color:#d8cdd1; }
.rating-stars .rating-fill { position:absolute; top:0; left:0; overflow:hidden; white-space:nowrap; color:#c76a12; }
.rating-unscored { color:#747d8d; font-size:11px; white-space:nowrap; }
.human-rating-summary > small { display:block; margin-top:8px; color:#6b7280; font-size:11px; }
.human-rating-input { border:0; padding:8px 0; margin:6px 0; }
.human-rating-input legend { font-size:13px; font-weight:700; }
.resume-review-panel .rating-options { display:flex; align-items:center; flex-wrap:wrap; gap:3px; }
.resume-review-panel .rating-options label { display:flex; align-items:center; justify-content:center; position:relative; margin:0; min-width:40px; min-height:44px; color:#b6a6ad; cursor:pointer; }
.rating-options label:not(.rating-clear) input { position:absolute; width:1px; height:1px; opacity:0; }
.rating-options label:not(.rating-clear) span[aria-hidden] { font-size:30px; }
.rating-options label:has(input:checked),.rating-options label:has(~ label input:checked):not(:has(~ .rating-clear input:checked)) { color:#c76a12; }
.rating-options label:has(input:focus-visible) { outline:2px solid #632942; outline-offset:2px; border-radius:4px; }
.resume-review-panel .rating-options .rating-clear { gap:5px; font-size:12px; margin-left:8px; color:#525c6b; }
.resume-review-panel .rating-clear input { width:auto; }
.candidate-list-application .human-rating-summary { max-width:380px; }
.hiring-policy select { display:block; width:100%; max-width:600px; margin-top:8px; padding:10px; }
@media(max-width:600px) { .human-rating-heading,.human-rating-criteria > div { gap:6px; } }
.candidate-card .human-rating-heading { font-size:11px; gap:5px; }
.candidate-card .human-rating-criteria { font-size:11px; }
.candidate-card .rating-stars { font-size:12px; letter-spacing:0; }
.candidate-card .human-rating-summary { padding:10px; }
.candidate-card .human-rating-summary > small { font-size:10px; }

.notification-candidates { max-height: 30vh; overflow: auto; overflow-wrap: anywhere; }

.notification-reason { display:block; margin:4px 0 12px 22px; }

/* NN-5153: company rejection presets. */
.rejection-reasons-fields { min-width: 0; margin: 24px 0; }
.rejection-reasons-fields legend { font-weight: 700; }
.rejection-reasons-fields textarea { display: block; box-sizing: border-box; width: 100%; margin: 8px 0 12px; resize: vertical; }
.rejection-reasons-list summary { overflow-wrap: anywhere; white-space: normal; }
.rejection-reasons-fields [data-reason-status]:empty { display: none; }

/* Other applications remain actionable while reading the current resume. */
.related-application { border-top:1px solid var(--line); padding:12px 0; }
.related-application > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.related-application > header > div { min-width:0; overflow-wrap:anywhere; }
.related-application > header small { display:block; margin-top:4px; color:#58616d; }
.related-application > header button { flex-shrink:0; }
.resume-viewer .related-application .application-triage { margin:8px 0 0; padding:0; border:0; }
.related-application .triage-options { margin-top:8px; }
@media(max-width:600px) {
  .related-application > header { align-items:flex-start; flex-direction:column; }
}

/* NN-5777: Academy course assignment and progress. */
.academy-management-panel .journey-filters { grid-template-columns:minmax(180px,1fr) auto; max-width:640px; }
.academy-management-panel progress { display:block; width:min(100%,480px); height:8px; accent-color:var(--wine); }
#academyAssign { margin-top:24px; }
#academyAssign fieldset { display:grid; gap:14px; border:1px solid var(--line,#e4dce1); border-radius:12px; padding:16px; }
#academyAssign legend { padding:0 6px; font-weight:600; }
#academyAssign label:has(input[type="checkbox"]) { display:flex; align-items:center; gap:10px; cursor:pointer; }
#academyAssign input[type="checkbox"] { width:18px; height:18px; min-height:18px; flex:0 0 18px; padding:0; margin:0; accent-color:var(--wine); }
#academyAssign button { justify-self:start; }
#academyAssignError { color:#a12234; margin:0; }
@media (max-width:600px) { .academy-management-panel .journey-filters { grid-template-columns:1fr; } }

/* NN-5807: permission catalog and evidence dialogs. */
.access-catalog .access-apps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;margin-top:20px}
.access-catalog .top-actions{flex-wrap:wrap}
.access-catalog td{vertical-align:top}
.access-dialog{width:min(760px,calc(100vw - 32px));max-height:90vh;overflow:auto;border:1px solid #ddd;border-radius:16px;padding:24px;color:#301423}
.access-dialog::backdrop{background:rgba(30,15,25,.45)}
.access-dialog .field{display:grid;gap:6px;margin:12px 0}
.access-dialog input,.access-dialog select,.access-dialog textarea{max-width:100%;padding:10px;border:1px solid #ddd;border-radius:8px}
.access-dialog textarea{min-height:90px}
.access-dialog pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}
.access-dialog [role=alert]{color:#a32626}
.initial-access-email-preview{display:block;width:100%;height:440px;border:1px solid #ddd;border-radius:8px;margin:16px 0;background:#fff}
.access-dialog label:has(input[type=checkbox]){overflow-wrap:anywhere}
@media(max-width:600px){.access-dialog{padding:16px}.access-dialog .form-grid{grid-template-columns:1fr}.access-catalog .toolbar-line{flex-wrap:wrap}}

/* NN-5952: operational lists and configuration use the same Nvoip controls. */
.people-topbar { position:sticky; top:0; z-index:5; background:var(--surface); border-bottom:1px solid var(--border); padding:12px 0; min-height:62px; }
.people-product-name { margin-right:auto; color:var(--primary-dark); font-size:16px; font-weight:700; }
.settings-dialog { border-radius:8px; }
.settings-search-label { display:block; margin:18px 0 6px; font-size:13px; font-weight:600; }
#settingsSearch { width:100%; padding:10px 12px; border:1px solid var(--border); border-radius:6px; color:var(--text-primary); background:var(--surface); font:inherit; }
.settings-context { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:12px 0; }
.settings-context p { color:var(--text-secondary); font-size:13px; }
.settings-options button { border-radius:6px; }
.hr-contextbar { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.people-list { min-width:0; max-width:100%; margin:14px 0; border:1px solid var(--border); border-radius:6px; background:var(--surface); overflow:hidden; }
.people-list-toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:10px 12px; border-bottom:1px solid var(--border); }
.people-list-search { display:flex; align-items:center; gap:8px; flex:1; min-width:180px; max-width:420px; padding:0 10px; border:1px solid var(--border); border-radius:6px; }
.people-list-search input { min-width:0; width:100%; border:0; padding:9px 0; background:transparent; font:inherit; font-size:13px; }
.people-list-toolbar svg { flex-shrink:0; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.people-list .btn { font-size:13px; padding:7px 10px; min-height:34px; }
.people-list-scroll { max-width:100%; overflow-x:auto; }
.people-list table.table { margin:0!important; width:100%; }
.people-list .table th { background:var(--surface-muted); color:var(--text-secondary); font-size:12px; font-weight:600; white-space:nowrap; }
.people-list .table td { font-size:13px; padding:10px 12px; vertical-align:middle; }
.people-list .table tbody tr:hover { background:#f9fafb; }
.people-list .table tr[hidden],.people-list-filters[hidden] { display:none!important; }
.people-list-filters { display:flex; flex-wrap:wrap; gap:12px; padding:12px; background:var(--surface-muted); border-bottom:1px solid var(--border); }
.people-list-filters label { display:grid; gap:5px; font-size:12px; font-weight:600; min-width:130px; }
.people-list-filters select,.people-list-filters input,.people-list-footer select { border:1px solid var(--border); border-radius:6px; padding:7px 9px; background:var(--surface); color:var(--text-primary); font:inherit; font-size:13px; }
.people-list-footer { display:flex; justify-content:flex-end; flex-wrap:wrap; align-items:center; gap:10px; padding:10px 12px; border-top:1px solid var(--border); font-size:12px; color:var(--text-secondary); }
.people-list-footer [data-list-count] { margin-right:auto; }
.people-unavailable { opacity:.62; filter:saturate(.2); border:1px dashed var(--border); border-radius:6px; padding:20px; background:var(--surface-muted); }
.people-feature-unavailable { opacity:.55; filter:saturate(.2); cursor:not-allowed!important; }
.people-unavailable button:disabled,.people-feature-unavailable:disabled { cursor:not-allowed; }
.people-list button:disabled { opacity:.45; cursor:default; }
.people-list :focus-visible,#settingsSearch:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
@media(max-width:700px) {
  .people-list-toolbar { align-items:stretch; }
  .people-list-search { flex-basis:100%; max-width:none; }
  .people-list-footer [data-list-count] { width:100%; }
  .people-list-filters label { flex:1; }
  .hr-contextbar { align-items:flex-start; flex-direction:column; }
  .people-product-name { font-size:14px; }
}
.people-list-sort { display:inline-flex; align-items:center; gap:5px; border:0; background:transparent; color:inherit; font:inherit; font-weight:600; padding:0; cursor:pointer; }
#nav button:disabled { opacity:.5; filter:saturate(.2); cursor:not-allowed; }

/* NN-5952: professional record editing stays within the operational workspace. */
#employeeModal.profile-only .people-modal-grid { grid-template-columns:minmax(0,1fr); }
#employeeModal.profile-only .ats-modal-side { display:none; }

/* NN-5982: one list-first workspace and explicit editors across modules. */
.people-topbar .role-switch { width:auto; min-width:0; margin:0; display:flex; gap:4px; padding:4px; background:var(--background); border:1px solid var(--border); border-radius:8px; }
.people-topbar .role-switch::before { display:none; }
.people-topbar .role-switch button { min-width:0; padding:8px 10px; color:var(--text-primary); font-size:12px; gap:6px; }
.people-topbar .role-switch button.active { background:var(--primary-dark); color:white; border-radius:5px; }
.people-topbar .role-switch button span { opacity:1; width:auto; font-size:12px; }
.people-topbar .role-switch button svg { width:16px; height:16px; }
.people-editor-dialog { border:1px solid var(--border); border-radius:12px; padding:0; width:min(920px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); color:var(--text-primary); background:var(--surface); box-shadow:0 24px 80px #17223140; }
.people-editor-dialog::backdrop { background:#15203270; }
.people-editor-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; border-bottom:1px solid var(--border); position:sticky; top:0; background:var(--surface); z-index:2; }
.people-editor-head h2 { font-size:20px; margin:0; }
.people-editor-body { padding:24px; }
.people-editor-body .form-grid { margin-top:0 !important; }
.people-editor-body > form { display:block; }
.people-editor-dialog input:not([type=checkbox]):not([type=radio]),.people-editor-dialog select,.people-editor-dialog textarea { max-width:100%; }
.people-editor-dialog .inline-actions,.people-editor-dialog .top-actions { flex-wrap:wrap; }
.people-editor-footer { padding:16px 24px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; background:var(--surface); }
.people-editor-action { padding:0; margin:12px 0; border:0; background:none; box-shadow:none; }
.people-editor-launch { margin:8px 0; }
.people-record-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:20px; margin:20px 0 0; }
.people-record-summary dt { color:var(--text-secondary); font-size:12px; }
.people-record-summary dd { margin:4px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.people-record-summary div { min-width:0; }
.people-record-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.people-list-first { display:block !important; }
.people-list-first > .card,.people-list-first > .hr-panel { margin-bottom:16px; }
.people-editor-dialog .culture-wizard-steps { display:flex; flex-wrap:wrap; }
@media(max-width:700px) { .people-topbar { flex-wrap:wrap; } .people-topbar-actions { flex-wrap:wrap; gap:8px; } .people-topbar .role-switch { order:3; width:100%; } .people-topbar .role-switch button { flex:1; } .people-editor-body,.people-editor-head { padding:16px; } .people-editor-dialog .form-grid { grid-template-columns:1fr; } }

.people-editor-discard { padding:16px 24px; background:#fff5f0; border-top:1px solid #f1d8cc; }
.people-editor-discard[hidden] { display:none; }
.people-secondary { margin-top:20px; }
.people-secondary > summary { cursor:pointer; font-weight:600; }
.candidate-search-toggle .candidate-search { position:static; border:0; box-shadow:none; padding:0; }
[data-attendance-section][hidden] { display:none !important; }

.embedded-module .journey-heading > div { display:none; }
.embedded-module .journey-heading { justify-content:flex-end; margin-top:0; }
.people-record-summary dd { white-space:pre-wrap; overflow-wrap:anywhere; }
.people-list-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-bottom:14px; }
.people-list-heading h2,.people-list-heading h3 { margin:0; }
.career-shell > * { min-width:0; }
.culture-studio { grid-template-columns:minmax(0,1fr); }
