﻿:root {
  --bg: #f4efe7;
  --panel: rgba(255, 252, 247, 0.96);
  --ink: #19322f;
  --muted: #61706a;
  --line: #ddd1c2;
  --primary: #1d5c4d;
  --primary-dark: #14463a;
  --accent: #d37a38;
  --accent-soft: #f3e0cc;
  --danger: #a5463f;
  --warning: #b4692f;
  --info: #2d6f88;
  --shadow: 0 28px 64px rgba(54, 39, 21, 0.1);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  font-family: Aptos, "Segoe UI", "Helvetica Neue", sans-serif;
  background:
    radial-gradient(circle at top left, rgba(211, 122, 56, 0.16), transparent 26%),
    radial-gradient(circle at bottom right, rgba(29, 92, 77, 0.16), transparent 28%),
    linear-gradient(180deg, #f7f1e8 0%, #efe5d8 100%);
  color: var(--ink);
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

h1,
h2,
h3 {
  margin-top: 0;
  font-family: Constantia, "Palatino Linotype", Georgia, serif;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

p {
  line-height: 1.65;
}

.page-shell {
  min-height: 100vh;
  padding: 24px;
}

.public-page,
.public-page-narrow,
.dashboard-layout,
.detail-layout,
.center-card,
.login-shell {
  width: min(1160px, 100%);
  margin: 0 auto;
  display: grid;
  gap: 24px;
}

.public-page-narrow {
  width: min(980px, 100%);
}

.login-layout {
  display: grid;
  gap: 24px;
}

.login-layout-balanced {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.hero-card,
.form-card,
.panel-card,
.list-card,
.detail-card,
.header-banner-card {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: var(--shadow);
  backdrop-filter: blur(5px);
}

.hero-card,
.panel-card,
.detail-card,
.list-card,
.header-banner-card {
  padding: 30px;
}

.form-card {
  padding: 30px 30px 18px;
}

.form-card-wide {
  width: 100%;
}

.brand-hero {
  background: rgba(255, 252, 247, 0.92);
  border: 1px solid var(--line);
  border-radius: 28px;
  box-shadow: var(--shadow);
  padding: 26px 30px;
}

.brand-hero-compact {
  padding-block: 22px;
}

.brand-row {
  display: flex;
  gap: 22px;
  align-items: center;
}

.brand-row-centered-title {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 22px;
  min-height: 120px;
}

.brand-logo {
  width: min(220px, 100%);
  max-height: 110px;
  object-fit: contain;
}

.brand-copy {
  display: grid;
  gap: 8px;
}

.brand-row-centered-title .brand-copy {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 420px);
  text-align: center;
}

.brand-title-spacer {
  display: block;
  visibility: hidden;
  flex: 0 0 180px;
}

.brand-copy h1 {
  margin: 0;
}

.login-shell .brand-copy h1,
.detail-layout .brand-copy h1,
.dashboard-heading,
.reports-heading,
.candidate-name-title {
  font-family: "Aptos Display", "Trebuchet MS", "Aptos", "Segoe UI", sans-serif;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: #183c3a;
}

.header-banner-card {
  padding: 0;
  overflow: hidden;
}

.header-banner-full {
  border-radius: 24px;
}

.header-banner-image {
  width: 100%;
  object-fit: cover;
}

.hero-card-login {
  display: grid;
  background:
    linear-gradient(135deg, rgba(255, 250, 244, 0.96), rgba(243, 232, 220, 0.96)),
    var(--panel);
}

.login-top-card {
  width: 100%;
}

.login-equal-card {
  min-height: 360px;
}

.login-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.login-illustration-fit,
.login-illustration-fit img {
  height: 100%;
}

.eyebrow {
  margin: 0;
  letter-spacing: 0.18em;
  font-size: 0.78rem;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 700;
}

.hero-copy,
.empty-text,
small,
.flash {
  color: var(--muted);
}

.hero-illustration img,
.success-illustration img,
.dashboard-side-gallery img {
  width: 100%;
  border-radius: 24px;
  object-fit: contain;
}

.dashboard-side-gallery-item {
  height: 100%;
  padding: 10px 12px;
  border-radius: 28px;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 26px rgba(177, 138, 84, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
}

.dashboard-side-gallery img {
  height: 100%;
  max-height: 100%;
}

.section-heading {
  margin-bottom: 20px;
}

.grid-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.stack-form,
.detail-form-layout {
  display: grid;
  gap: 16px;
}

.field {
  display: grid;
  gap: 8px;
}

.field label {
  font-weight: 700;
}

.field.full {
    grid-column: 1 / -1;
}

.grid-form > .full,
.grid-form > .full-width,
.grid-form > .email-project-status-row {
    grid-column: 1 / -1;
}

.text-input,
.text-area,
select {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 14px 16px;
  font-size: 0.98rem;
  background: #fff;
  color: var(--ink);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.text-input:focus,
.text-area:focus,
select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(29, 92, 77, 0.12);
}

.input-error {
  border-color: #c26c64;
  box-shadow: 0 0 0 4px rgba(197, 108, 100, 0.12);
}

.choice-row,
.checkbox-grid {
  display: grid;
  gap: 12px;
}

.choice-row {
  grid-template-columns: repeat(auto-fit, minmax(140px, max-content));
}

.checkbox-grid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}

.choice-row.input-error,
.checkbox-grid.input-error {
  padding: 10px;
  border: 1px solid #c26c64;
  border-radius: 18px;
  background: rgba(197, 108, 100, 0.06);
  box-shadow: 0 0 0 4px rgba(197, 108, 100, 0.08);
}

.choice-card {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 12px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  cursor: pointer;
  font-weight: 600;
}

.choice-card input {
  margin: 0;
  accent-color: var(--primary);
}

.choice-card-checkbox {
  width: 100%;
}

.project-assignment-grid,
.project-summary-list {
  display: grid;
  gap: 16px;
}

.project-assignment-card,
.project-summary-card,
.detail-card-soft {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255, 255, 255, 0.78);
}

.text-area {
  min-height: 128px;
  resize: vertical;
}

.uppercase {
  text-transform: uppercase;
}

.age-readonly,
.age-readonly-admin {
  background: #f8f5ee;
}

.email-lowercase {
  text-transform: lowercase;
}

.primary-button,
.secondary-button,
.danger-button {
  border: none;
  border-radius: 999px;
  padding: 14px 20px;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.15s ease, background 0.2s ease;
}

.primary-button:hover,
.secondary-button:hover,
.danger-button:hover {
  transform: translateY(-1px);
}

.primary-button {
  background: var(--primary);
  color: #fff;
}

.primary-button:hover {
  background: var(--primary-dark);
}

.primary-button-large {
  min-height: 58px;
  padding-inline: 28px;
  font-size: 1.02rem;
}

.secondary-button {
  background: #f5efe6;
  color: var(--ink);
}

.soft-button {
  background: #fbf7f0;
}

.edit-light-button {
  background: #f8f2ea;
  color: #6f6152;
}

.logout-button {
  background: #eadfce;
  color: #59493d;
}

.danger-button {
  background: var(--danger);
  color: #fff;
}

.inline-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.submit-row-large {
  padding-top: 12px;
}

.center-card {
  min-height: calc(100vh - 48px);
  place-items: center;
}

.success-card {
  width: min(820px, 100%);
  display: grid;
  gap: 18px;
}

.success-illustration {
  max-width: 520px;
  margin: 0 auto;
}

.success-content {
  display: grid;
  justify-items: center;
  text-align: center;
}

.dashboard-shell {
  width: min(1680px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  justify-content: center;
  gap: 24px;
  align-items: start;
}

.dashboard-shell-three-columns {
  grid-template-columns: 220px minmax(0, 1fr) 250px;
}

.dashboard-main-column {
  display: grid;
  gap: 20px;
  min-width: 0;
}

.dashboard-header,
.detail-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.dashboard-header-main {
  align-items: flex-start;
}

.status-tabs {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  min-width: 0;
}

.status-tabs-full {
  flex: 1;
}

.status-tabs-primary {
  align-items: center;
}

.status-tab {
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.75);
  border: 1px solid var(--line);
  font-weight: 700;
}

.status-tab.active {
  background: var(--primary);
  color: #fff;
}

.dashboard-list-card {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.88), rgba(250, 245, 237, 0.88)),
    var(--panel);
}

.dashboard-side-gallery {
  display: grid;
  gap: 16px;
  height: calc(100vh - 48px);
  grid-template-rows: repeat(4, minmax(0, 1fr));
}

.dashboard-side-actions {
  display: grid;
  gap: 16px;
}

.dashboard-side-edge {
  position: sticky;
  top: 24px;
}

.dashboard-side-left-offset {
  margin-top: 0;
}

.dashboard-heading {
  font-size: clamp(2.7rem, 3.2vw, 3.7rem);
  line-height: 1;
  margin: 0;
}

.dashboard-actions-card {
  display: grid;
  gap: 14px;
  padding: 18px 16px;
  background: linear-gradient(180deg, rgba(255, 250, 244, 0.96), rgba(247, 240, 229, 0.96));
  border: 1px solid rgba(214, 188, 151, 0.58);
  border-radius: 28px;
  box-shadow: var(--shadow);
}

.dashboard-actions-card-top {
  padding-top: 4px;
}

.dashboard-sidebar-logo-wrap {
  min-height: 72px;
  display: grid;
  place-items: start center;
  padding: 4px 8px 0;
  margin-bottom: -2px;
}


.dashboard-sidebar-logo {
  width: 176px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}


.brand-row-title-only {
  justify-content: center;
}

.brand-row-title-only .brand-copy {
  width: 100%;
  text-align: center;
}


.dashboard-actions-card-full {
  min-height: calc(100vh - 48px);
  height: calc(100vh - 48px);
  align-content: start;
  grid-template-rows: auto 1fr auto;
}

.status-tabs-secondary-grow {
  align-content: start;
  display: grid;
  gap: 10px;
  padding-top: 0;
  margin-top: 10px;
}


.dashboard-actions-footer {
  margin-top: auto;
  display: grid;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid rgba(214, 188, 151, 0.55);
  align-content: end;
}

.dashboard-user-card {
  display: grid;
  gap: 4px;
  padding-top: 8px;
  text-align: left;
  margin-top: auto;
}

.dashboard-user-card strong {
  font-size: 1rem;
  color: var(--primary-ink);
}

.dashboard-user-card span {
  color: var(--muted);
  font-size: 0.94rem;
}


.status-tabs-secondary {
  display: grid;
  gap: 10px;
}

.status-tab-form {
  margin: 0;
}

.status-tab-button {
  width: 100%;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.94);
}


.status-tab-secondary {
  background: rgba(255, 255, 255, 0.94);
  border-color: rgba(214, 188, 151, 0.7);
  color: var(--primary-ink);
  text-align: center;
}

.status-tab-secondary.active {
  background: linear-gradient(135deg, #d37a38, #c76a2d);
  border-color: transparent;
  color: #fff;
}

@media (max-width: 1320px) {
  .dashboard-shell-three-columns {
    grid-template-columns: 220px minmax(0, 1fr);
  }

  .dashboard-side-right {
    grid-column: 2;
    position: static;
  }
}

@media (max-width: 980px) {
  .dashboard-shell-three-columns {
    grid-template-columns: 1fr;
  }

  .dashboard-side-left,
  .dashboard-side-right {
    position: static;
  }

  .dashboard-side-left-offset {
    margin-top: 0;
  }

  .dashboard-actions-card-full {
    min-height: auto;
    height: auto;
  }

  .dashboard-side-left {
    order: 2;
  }

  .dashboard-main-column {
    order: 1;
  }

  .dashboard-side-right {
    order: 3;
  }

  .dashboard-actions-card {
    padding: 20px;
  }

  .status-tabs-secondary-grow,
  .dashboard-actions-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .dashboard-user-card {
    grid-column: 1 / -1;
    text-align: center;
  }
}

.candidate-list,
.history-list {
  display: grid;
  gap: 14px;
}

.candidate-row,
.history-row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: 20px;
  padding: 20px;
  background: #fff;
}

.history-row-project {
  display: grid;
  grid-template-columns: minmax(220px, 1.2fr) minmax(140px, 0.7fr) minmax(150px, 0.8fr) minmax(280px, 1.6fr);
  align-items: start;
  gap: 18px;
}

.history-col {
  min-width: 0;
}

.history-col-status strong,
.history-col-actor span,
.history-col-date small,
.history-col-note p {
  display: block;
}

.history-col-note p {
  margin: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.candidate-row-main {
  display: grid;
  gap: 6px;
}

.candidate-row-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}

.candidate-row-actions form {
  margin: 0;
}

.candidate-row h2 {
  margin-bottom: 0;
}

.candidate-name-title {
  font-size: clamp(2rem, 3vw, 3rem);
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.detail-grid .full {
  grid-column: 1 / -1;
}

.candidate-chip {
  display: inline-flex;
  width: fit-content;
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--accent-soft);
  color: var(--accent);
  font-size: 0.8rem;
  font-weight: 700;
}

.candidate-chip-aceito {
  background: #dff4e7;
  color: #13814c;
}

.candidate-chip-recusado {
  background: #fde4e2;
  color: #c23e32;
}

.candidate-chip-pendente {
  background: #fff0d9;
  color: #d37a38;
}

.candidate-chip-comprovante_pendente {
  background: #fff0d9;
  color: #d37a38;
}

.candidate-chip-ativo {
  background: #e3f3ea;
  color: #1e6e53;
}

.candidate-chip-inativo {
  background: #eef0f2;
  color: #66757b;
}

.candidate-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.action-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  padding-top: 12px;
}

.action-row-centered {
  justify-content: center;
  align-items: center;
}

.flash-stack {
  width: min(1160px, 100%);
  margin: 0 auto 18px;
  display: grid;
  gap: 10px;
}

.flash {
  padding: 14px 16px;
  background: #fffefb;
  border-radius: 16px;
  border: 1px solid var(--line);
}

.flash-success {
  border-color: #9bc6b5;
}

.flash-error {
  border-color: #d8a2a2;
}

.cpf-lookup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.cpf-lookup-button {
  min-height: 52px;
  white-space: nowrap;
}
.lookup-feedback {
  margin-top: 10px;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid transparent;
  font-size: 0.95rem;
  line-height: 1.5;
}

.lookup-feedback-warning {
  background: #fff7ec;
  border-color: #edc796;
  color: #7a5427;
}
.form-feedback {
  border-radius: 22px;
  padding: 18px 20px;
  margin-bottom: 20px;
  border: 1px solid transparent;
}

.form-feedback h3,
.form-feedback p {
  margin-bottom: 8px;
}

.form-feedback-error {
  background: #fff6f5;
  border-color: #e2b4af;
}

.feedback-list {
  margin: 0;
  padding-left: 20px;
  color: #6f4742;
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(25, 50, 47, 0.28);
  display: grid;
  place-items: center;
  padding: 20px;
  z-index: 60;
}

.modal-backdrop[hidden] {
  display: none !important;
}

.modal-card {
  width: min(460px, 100%);
  background: #fffdf9;
  border-radius: 28px;
  padding: 28px;
  box-shadow: var(--shadow);
  text-align: center;
}

.modal-card-compact {
  width: min(430px, 100%);
}

.modal-card h2 {
  margin-bottom: 10px;
}

.modal-card p {
  margin-bottom: 22px;
  color: var(--muted);
}

.modal-icon {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  margin: 0 auto 16px;
}

.modal-icon-success {
  background: radial-gradient(circle at 30% 30%, #92d0bc, #1d5c4d);
}

.modal-icon-warning {
  background: radial-gradient(circle at 30% 30%, #f2c8a0, #b4692f);
}

.modal-icon-info {
  background: radial-gradient(circle at 30% 30%, #9ed4e5, #2d6f88);
}

.status-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(25, 50, 47, 0.28);
  display: grid;
  place-items: center;
  padding: 20px;
  z-index: 50;
}

.status-modal-backdrop[hidden] {
  display: none !important;
}

.status-modal {
  width: min(460px, 100%);
  background: #fffdf9;
  border-radius: 28px;
  padding: 28px;
  box-shadow: var(--shadow);
  text-align: center;
}

.status-modal h2 {
  margin-bottom: 10px;
}

.status-modal p {
  margin-bottom: 22px;
  color: var(--muted);
}

.status-modal-badge {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  margin: 0 auto 16px;
}

.status-modal-success {
  background: radial-gradient(circle at 30% 30%, #92d0bc, #1d5c4d);
}

.status-modal-warning {
  background: radial-gradient(circle at 30% 30%, #f2c8a0, #b4692f);
}

.status-modal-info {
  background: radial-gradient(circle at 30% 30%, #9ed4e5, #2d6f88);
}

.report-cards,
.report-pies-grid {
  display: grid;
  gap: 16px;
}

.report-cards {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.report-pies-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.report-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(250, 246, 239, 0.96));
  border: 1px solid rgba(209, 191, 165, 0.85);
  border-top: 4px solid #2d7b68;
  border-radius: 24px;
  box-shadow: 0 18px 36px rgba(121, 92, 44, 0.10);
  padding: 20px 16px;
  min-height: 122px;
  display: grid;
  gap: 10px;
  text-align: center;
  align-content: center;
}

.report-card strong {
  font-size: clamp(1.85rem, 2vw, 2.5rem);
  font-family: "Aptos Display", "Trebuchet MS", "Aptos", "Segoe UI", sans-serif;
  justify-self: center;
  align-self: center;
  color: #183c3a;
}

.report-label {
  color: #66756f;
  font-weight: 700;
  font-size: 0.98rem;
}

.report-chart-card {
  padding-bottom: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(248, 243, 234, 0.97));
  border-color: rgba(209, 191, 165, 0.85);
}

.report-combo-chart {
  position: relative;
}

.report-line-svg {
  position: absolute;
  inset: 0 0 56px 0;
  width: 100%;
  height: calc(100% - 56px);
  pointer-events: none;
}

.report-bars {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
  min-height: 300px;
}

.report-bars-overlay {
  position: relative;
  z-index: 1;
}

.report-bar-item {
  display: grid;
  gap: 10px;
  justify-items: center;
}

.report-bar-track {
  width: 100%;
  height: 210px;
  background: transparent;
  border-radius: 0;
  display: flex;
  align-items: end;
  padding: 0 8px;
}

.report-bar-fill {
  width: 100%;
  border-radius: 12px 12px 0 0;
  background: linear-gradient(180deg, #f4c13a 0%, #e7a91d 100%);
  min-height: 8px;
  box-shadow: 0 10px 22px rgba(231, 169, 29, 0.22);
}

.report-bar-item strong {
  font-size: 1rem;
}

.report-bar-item span {
  color: var(--muted);
  font-size: 0.8rem;
  text-align: center;
}

.pie-card {
  display: grid;
  grid-template-rows: auto 1fr;
  gap: 18px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(249, 245, 238, 0.96));
  border-color: rgba(209, 191, 165, 0.85);
}

.pie-card .section-heading {
  min-height: 96px;
}

.pie-layout {
  display: grid;
  grid-template-rows: 240px 1fr;
  gap: 18px;
  align-content: start;
  align-items: start;
}

.pie-visual {
  width: 220px;
  height: 220px;
  border-radius: 50%;
  justify-self: center;
  box-shadow: inset 0 0 0 10px rgba(255, 255, 255, 0.72), 0 16px 36px rgba(82, 97, 91, 0.10);
}

.pie-legend {
  display: grid;
  gap: 10px;
  align-content: start;
}

.pie-legend-item {
  display: flex;
  gap: 10px;
  align-items: center;
  color: #596764;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(223, 213, 196, 0.85);
  border-radius: 14px;
  padding: 10px 12px;
}

.report-subtitle {
  font-family: "Aptos Display", "Trebuchet MS", "Aptos", "Segoe UI", sans-serif;
  font-size: 1.5rem;
  color: #183c3a;
  letter-spacing: -0.02em;
}

.reports-heading {
  font-size: clamp(2.7rem, 3vw, 3.5rem);
  line-height: 1;
}

.pie-color {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-block;
}

@media (max-width: 1280px) {
  .dashboard-shell {
    grid-template-columns: 180px minmax(0, 1fr);
  }
}

@media (max-width: 1080px) {
  .report-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .report-pies-grid {
    grid-template-columns: 1fr;
  }

  .report-bars {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .pie-layout {
    grid-template-rows: auto 1fr;
    justify-items: center;
  }

  .pie-legend {
    width: 100%;
  }
}

@media (max-width: 960px) {
  .login-layout-balanced,
  .grid-form,
  .detail-grid,
  .dashboard-shell {
    grid-template-columns: 1fr;
  }

  .brand-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .brand-row-centered-title {
    min-height: auto;
    flex-direction: column;
    align-items: center;
  }

  .brand-row-centered-title .brand-copy {
    position: static;
    transform: none;
    width: 100%;
  }

  .dashboard-side-edge {
    position: static;
  }

  .dashboard-side-gallery {
    height: auto;
    grid-template-rows: none;
  }
}

@media (max-width: 720px) {
  .page-shell {
    padding: 16px;
  }

  .dashboard-shell {
    gap: 18px;
  }

  .dashboard-actions-card,
  .dashboard-tools-card,
  .list-card,
  .detail-card {
    border-radius: 22px;
    padding-left: 16px;
    padding-right: 16px;
  }

  .dashboard-header-main {
    align-items: stretch;
  }

  .status-tabs-primary {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 6px;
    margin-bottom: -6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .status-tabs-primary .status-tab {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .status-tabs-secondary-grow,
  .dashboard-actions-footer {
    grid-template-columns: 1fr;
  }

  .candidate-row,
  .history-row,
  .dashboard-header,
  .detail-topbar,
  .action-row,
  .candidate-row-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .candidate-row,
  .history-row {
    padding: 18px 16px;
  }

  .candidate-row-actions > a,
  .candidate-row-actions > form,
  .candidate-row-actions > form > button,
  .history-row-stack > a,
  .history-row-stack > form,
  .history-row-stack > form > button {
    width: 100%;
  }

  .candidate-row-actions > form,
  .history-row-stack > form {
    display: flex;
  }

  .status-tab,
  .status-tab-button {
    min-height: 50px;
  }

  .choice-row {
    grid-template-columns: 1fr;
  }

  .checkbox-grid {
    grid-template-columns: 1fr;
  }

  .choice-card {
    width: 100%;
    justify-content: flex-start;
  }

  .detail-topbar .inline-button,
  .detail-topbar form,
  .detail-topbar form button,
  .action-row .inline-button,
  .action-row form,
  .action-row form button {
    width: 100%;
  }

  .section-heading {
    margin-bottom: 16px;
  }

  .report-cards,
  .report-bars {
    grid-template-columns: 1fr;
  }

  .report-cards-five,
  .report-cards-six,
  .report-pies-grid-people,
  .report-pies-grid-projects {
    grid-template-columns: 1fr;
  }

  .report-card {
    min-height: auto;
    padding: 18px 14px;
  }

  .report-card strong {
    font-size: clamp(1.6rem, 8vw, 2.1rem);
  }

  .report-combo-chart {
    overflow-x: auto;
    padding-bottom: 8px;
  }

  .report-bars {
    min-width: 640px;
  }

  .report-chart-card {
    overflow: hidden;
  }

  .detail-layout {
    gap: 18px;
  }

  .candidate-name-title {
    font-size: clamp(1.7rem, 8vw, 2.3rem);
  }

  .project-assignment-card,
  .project-summary-card {
    padding: 16px;
  }

  .history-row-project {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .section-heading-spaced {
    margin-top: 18px;
  }

  .report-bar-track {
    height: 120px;
  }

  .pie-visual {
    width: 180px;
    height: 180px;
  }
}




.field-consent {
  display: grid;
  gap: 10px;
}

.consent-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.92);
  cursor: pointer;
}

.consent-card input {
  margin-top: 4px;
  accent-color: var(--accent);
}

.consent-card span {
  color: var(--ink);
  line-height: 1.5;
}

.consent-help {
  margin: 0;
  color: var(--muted);
  font-size: 0.92rem;
}

.center-card-fit {
  min-height: calc(100vh - 48px);
  align-items: center;
}

.success-card-fit {
    width: min(820px, 100%);
    min-height: min(88vh, 820px);
    display: grid;
    align-content: center;
}

.proof-success-card {
    width: min(760px, 100%);
    min-height: min(72vh, 560px);
    display: grid;
    justify-items: center;
    align-content: center;
    gap: 18px;
    text-align: center;
    margin: 0 auto;
}

.proof-success-check {
    width: min(170px, 32vw);
    max-width: 170px;
}

.proof-success-check svg {
    display: block;
    width: 100%;
    height: auto;
}

.proof-success-card h1 {
    margin: 0;
}

.success-content-top {
    gap: 12px;
}

.success-content-top p {
  margin: 0;
  max-width: 560px;
}

.success-illustration img {
  max-height: min(48vh, 420px);
}

@media (max-width: 720px) {
  .center-card-fit {
    min-height: auto;
  }

  .success-card-fit {
    min-height: auto;
  }

  .success-illustration img {
    max-height: 34vh;
  }

  .proof-success-card {
    min-height: auto;
    padding-block: 48px;
  }
}


.report-section-block {
  display: grid;
  gap: 18px;
}

.report-section-heading {
  margin-bottom: 0;
}

.report-helper {
  margin: 6px 0 0;
  color: #66756f;
  max-width: 760px;
  line-height: 1.5;
}

.report-cards-four {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.report-cards-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.report-cards-six {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.report-pies-grid-people {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.report-pies-grid-projects {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.report-pies-grid-projects > .detail-card {
  height: 100%;
}

.report-grid-two {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 16px;
}

.report-grid-single {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.report-bars-projects {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  min-height: 280px;
}

.top-list-card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(249, 245, 238, 0.96));
}

.mini-bar-list {
  display: grid;
  gap: 10px;
}

.mini-bar-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid rgba(223, 213, 196, 0.9);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.84);
}

.mini-bar-row span {
  color: #4d5f59;
}

.mini-bar-row strong {
  color: #183c3a;
  font-family: "Aptos Display", "Trebuchet MS", "Aptos", "Segoe UI", sans-serif;
}

@media (max-width: 1080px) {
  .report-cards-four,
  .report-cards-five,
  .report-cards-six,
  .report-grid-two,
  .report-grid-single,
  .report-pies-grid-people {
    grid-template-columns: 1fr;
  }
}


.locked-field {
  pointer-events: none;
  user-select: none;
  background: #eef2f2 !important;
  color: #586765;
  border-color: #d8dfde;
  cursor: not-allowed;
}

.locked-field:focus {
  outline: none;
  box-shadow: none;
}

.section-super-label {
  font-size: clamp(1.55rem, 2.8vw, 2.3rem);
  letter-spacing: 0.24em;
  font-weight: 900;
  color: var(--accent);
}

.report-cards-six .report-card {
  padding: 18px 12px;
  min-height: 116px;
}

.report-cards-six .report-label {
  font-size: 0.92rem;
}

.report-cards-six .report-card strong {
  font-size: clamp(1.65rem, 1.8vw, 2.15rem);
}

.status-tab {
  white-space: nowrap;
}

.section-heading-spaced {
  margin-top: 24px;
}

.recipient-list {
  display: grid;
  gap: 12px;
}

.recipient-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.82);
}

.recipient-card input {
  margin-top: 4px;
  accent-color: var(--primary);
}

.recipient-card strong,
.recipient-card small {
  display: block;
}

.recipient-card small {
  color: var(--muted);
  margin-top: 4px;
}

.email-filter-action {
  align-self: end;
}


.dashboard-tools-card {
  display: grid;
  gap: 18px;
  padding: 22px 24px;
  background: rgba(255, 252, 247, 0.9);
  border: 1px solid var(--line);
  border-radius: 24px;
  box-shadow: var(--shadow);
}

.dashboard-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.dashboard-search-input-wrap {
  position: relative;
}

.dashboard-search-input {
  padding-right: 52px;
}

.dashboard-search-clear {
  position: absolute;
  top: 50%;
  right: 16px;
  transform: translateY(-50%);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f6eee2;
  color: #9d5c2a;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
  transition: 0.2s ease;
}

.dashboard-search-clear:hover {
  background: #ecd8bf;
  color: #7f4318;
}

.dashboard-search-results,
.bulk-inactivate-card {
  display: grid;
  gap: 14px;
}

.history-row-stack {
  align-items: center;
}

.history-row-stack p {
  margin: 6px 0;
}

.email-compose-box {
  min-height: 160px;
  max-height: 160px;
  resize: none;
  overflow-y: auto;
}

.locked-field {
  pointer-events: none;
  background: #f1f4fb;
  color: #4d5a61;
}

.email-search-button {
  background: linear-gradient(135deg, #d37a38, #c45f1f);
  color: #fff;
  box-shadow: 0 14px 28px rgba(211, 122, 56, 0.28);
}

.email-search-button:hover {
  background: linear-gradient(135deg, #c96d29, #ad5318);
}

.save-edit-button {
  background: linear-gradient(135deg, #de7b2d, #f09b4e);
  color: #fff;
  border-color: #de7b2d;
}

.save-edit-button:hover {
  background: linear-gradient(135deg, #c86d22, #e98b3b);
  border-color: #c86d22;
}

.fixed-textarea {
  min-height: 160px;
  max-height: 160px;
  resize: none;
  overflow-y: auto;
}
.required-mark {
  color: #c24a3c;
  margin-left: 4px;
}

.choice-card-disabled {
  opacity: 0.45;
}

.choice-card[hidden] {
  display: none !important;
}

[hidden] {
  display: none !important;
}

.email-project-status-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 300px);
  gap: 20px;
  align-items: start;
  width: 100%;
}

.email-project-field,
.email-status-field {
    min-width: 0;
}

.email-project-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}

.email-project-grid .choice-card {
  width: 100%;
  min-height: 90px;
  padding: 14px 12px;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  flex-direction: row;
  text-align: left;
}

.email-project-grid .choice-card span {
  display: block;
  line-height: 1.2;
  word-break: normal;
  overflow-wrap: anywhere;
}

.email-status-field .text-input,
.email-status-field select {
  min-height: 56px;
}

.email-training-row {
  display: grid;
  grid-template-columns: minmax(120px, 150px) minmax(120px, 130px) minmax(260px, 1fr) minmax(120px, 130px);
  gap: 16px;
  align-items: end;
}

.email-training-row .field {
    min-width: 0;
}

.email-training-row .field.full {
    grid-column: auto;
}

#trainingFields[hidden],
#projectOptionsWrap[hidden] {
  display: none !important;
}

.settings-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.settings-inline-actions .inline-form {
  display: flex;
  margin: 0;
}

@media (max-width: 1100px) {
  .dashboard-tools-card {
    padding: 20px;
  }

  .dashboard-search-form {
    grid-template-columns: 1fr;
  }

  .dashboard-search-form > .primary-button,
  .dashboard-search-form > .inline-button {
    width: 100%;
  }

  .email-project-status-row,
  .email-training-row {
    grid-template-columns: 1fr;
  }

  .email-project-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .page-shell {
    padding: 12px;
  }

  .brand-hero,
  .hero-card,
  .form-card,
  .panel-card,
  .list-card,
  .detail-card,
  .header-banner-card {
    border-radius: 20px;
  }

  .brand-hero,
  .hero-card,
  .panel-card,
  .detail-card,
  .list-card,
  .header-banner-card,
  .form-card {
    padding-left: 14px;
    padding-right: 14px;
  }

  .brand-hero {
    padding-top: 18px;
    padding-bottom: 18px;
  }

  .brand-logo {
    width: min(180px, 100%);
    max-height: 88px;
  }

  .dashboard-heading {
    font-size: clamp(2rem, 9vw, 2.6rem);
  }

  .reports-heading {
    font-size: clamp(2rem, 9vw, 2.6rem);
  }

  .dashboard-search-clear {
    right: 12px;
  }

  .dashboard-user-card {
    text-align: left;
  }

  .candidate-chip {
    font-size: 0.76rem;
  }

  .detail-card,
  .project-assignment-card,
  .project-summary-card,
  .report-card,
  .pie-card {
    border-radius: 18px;
  }

  .detail-topbar .inline-button,
  .project-summary-card .inline-button,
  .project-summary-card form,
  .project-summary-card form button {
    width: 100%;
  }

  .text-input,
  .text-area,
  select {
    padding: 13px 14px;
    font-size: 0.96rem;
  }

  .primary-button,
  .secondary-button,
  .danger-button {
    padding: 13px 18px;
  }
}

.dashboard-actions-footer .status-tab {
  min-height: 56px;
}

.dashboard-actions-footer .status-tab-button {
  box-shadow: none;
}

.dashboard-actions-footer .status-tab-button:hover {
  background: rgba(255, 255, 255, 0.94);
}

.dashboard-user-card strong {
  font-size: 0.98rem;
}

.dashboard-user-card span {
  font-size: 0.92rem;
}


.modal-open {
  overflow: hidden;
}

