.candidate-site {
  height: 100svh;
  min-height: 0;
  overflow: hidden;
}

.candidate-site > .site-footer {
  display: none;
}

.candidate-site > .site-header {
  display: none;
}

.candidate-portal {
  width: 100%;
  height: 100svh;
  min-height: 0;
  margin: 0;
  padding: 16px var(--header-inline-padding);
  overflow: hidden;
}

.candidate-workspace {
  width: 100%;
  height: 100%;
  min-height: 0;
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  align-items: stretch;
  gap: 10px;
  transition: grid-template-columns 180ms ease;
}

.candidate-workspace.is-sidebar-collapsed {
  grid-template-columns: 58px minmax(0, 1fr);
}

.candidate-app {
  min-width: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  width: 100%;
  padding: clamp(16px, 2vw, 24px);
  background:
    radial-gradient(circle at 88% 8%, rgba(141, 255, 0, 0.18), transparent 32%),
    rgba(255, 255, 255, 0.58);
  border: 1px solid rgba(32, 32, 41, 0.08);
  border-radius: 8px;
  box-shadow: 0 28px 80px rgba(38, 48, 28, 0.1);
  backdrop-filter: blur(18px);
}

.candidate-sidebar {
  position: relative;
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 10px;
  width: 168px;
  min-width: 168px;
  padding: 11px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(32, 32, 41, 0.08);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(38, 48, 28, 0.08);
  transition:
    width 180ms ease,
    min-width 180ms ease,
    padding 180ms ease;
}

.candidate-sidebar-toggle {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 4;
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #315b00;
  background: #efffdc;
  border: 1px solid rgba(99, 182, 0, 0.24);
  border-radius: 7px;
  cursor: pointer;
}

.candidate-sidebar-brand {
  min-width: 0;
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 2px 38px 9px 3px;
  border-bottom: 1px solid rgba(32, 32, 41, 0.08);
  text-decoration: none;
}

.candidate-sidebar-brand img {
  width: min(100%, 142px);
  max-height: 30px;
  display: block;
  object-fit: contain;
  object-position: left center;
}

.candidate-menu,
.candidate-sidebar-footer {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  overflow: hidden;
}

.candidate-sidebar-footer {
  align-self: end;
}

.candidate-menu {
  align-content: start;
  padding-top: 4px;
}

.candidate-menu button,
.candidate-menu a,
.candidate-sidebar-footer a,
.candidate-sidebar-footer button {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 8px;
  color: #33343d;
  font-size: 0.79rem;
  text-align: left;
  justify-content: flex-start;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 8px;
  transition:
    color 160ms ease,
    background 160ms ease,
    border-color 160ms ease,
    transform 160ms ease;
}

.candidate-menu svg,
.candidate-sidebar-footer svg,
.candidate-sidebar-toggle svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.candidate-menu button:hover,
.candidate-menu button:focus-visible,
.candidate-menu button.is-active,
.candidate-menu a:hover,
.candidate-menu a:focus-visible {
  color: #315b00;
  background: rgba(141, 255, 0, 0.14);
  border-color: rgba(99, 182, 0, 0.16);
}

.candidate-sidebar-footer a:hover,
.candidate-sidebar-footer a:focus-visible,
.candidate-sidebar-footer button:hover,
.candidate-sidebar-footer button:focus-visible {
  color: #315b00;
}

.candidate-sidebar-footer a:last-child {
  color: #b42318;
}

.candidate-sidebar-footer a:last-child:hover,
.candidate-sidebar-footer a:last-child:focus-visible {
  color: #8f1d14;
  background: rgba(180, 35, 24, 0.08);
  border-color: rgba(180, 35, 24, 0.14);
}

.candidate-workspace.is-sidebar-collapsed .candidate-sidebar {
  width: 58px;
  min-width: 58px;
  grid-template-rows: minmax(0, 1fr) auto;
  padding: 8px;
}

.candidate-workspace.is-sidebar-collapsed .candidate-sidebar-brand {
  display: none;
}

.candidate-workspace.is-sidebar-collapsed .candidate-menu {
  padding-top: 34px;
}

.candidate-workspace.is-sidebar-collapsed .candidate-menu button,
.candidate-workspace.is-sidebar-collapsed .candidate-menu a,
.candidate-workspace.is-sidebar-collapsed .candidate-sidebar-footer a,
.candidate-workspace.is-sidebar-collapsed .candidate-sidebar-footer button {
  width: 100%;
  max-width: 100%;
  justify-content: center;
  gap: 0;
  padding-inline: 0;
  overflow: hidden;
  font-size: 0;
}

.candidate-workspace.is-sidebar-collapsed .candidate-menu svg,
.candidate-workspace.is-sidebar-collapsed .candidate-sidebar-footer svg {
  width: 18px;
  height: 18px;
}

.candidate-main {
  min-width: 0;
  min-height: 0;
  height: 100%;
  display: block;
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 6px;
  overscroll-behavior: contain;
}

.candidate-panel,
.candidate-card,
.candidate-job-card {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(32, 32, 41, 0.08);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(38, 48, 28, 0.08);
  backdrop-filter: blur(18px);
}

.candidate-view {
  display: none;
  gap: clamp(18px, 2.2vw, 28px);
  animation: candidate-rise 240ms ease both;
}

.candidate-view.is-active {
  display: grid;
}

.candidate-hero {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
  align-items: end;
  gap: 20px;
}

.candidate-hero h1,
.candidate-hero h2 {
  max-width: min(100%, 1040px);
  margin: 0;
  color: var(--title-color);
  font-family: var(--title-font);
  font-size: 36px;
  font-weight: var(--title-weight);
  line-height: 1.18;
  letter-spacing: var(--title-letter-spacing);
}

.candidate-hero p {
  max-width: 680px;
  margin: 12px 0 0;
  color: var(--subtitle-color);
  font-size: calc(clamp(1rem, 1.4vw, 1.18rem) * var(--subtitle-size-scale));
  line-height: 1.55;
}

.candidate-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
}

.candidate-panel {
  display: grid;
  gap: 18px;
  padding: clamp(18px, 2.4vw, 28px);
}

.candidate-panel h2,
.candidate-card strong,
.candidate-job-card strong {
  margin: 0;
  color: #202029;
  font-size: 1.15rem;
  font-weight: 600;
}

.candidate-panel p,
.candidate-card span,
.candidate-job-card p {
  margin: 0;
  color: #696a73;
  line-height: 1.5;
}

.candidate-flow {
  position: relative;
  display: grid;
  gap: 0;
  padding: 4px 0;
}

.candidate-flow::before {
  position: absolute;
  top: 22px;
  bottom: 22px;
  left: 17px;
  width: 2px;
  content: "";
  background: linear-gradient(
    180deg,
    rgba(141, 255, 0, 0.92),
    rgba(141, 255, 0, 0.42),
    rgba(32, 32, 41, 0.12)
  );
  border-radius: 999px;
}

.candidate-flow-step {
  position: relative;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  padding: 0 0 24px;
}

.candidate-flow-step:last-child {
  padding-bottom: 0;
}

.candidate-flow-step span {
  position: relative;
  z-index: 1;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #ffffff;
  background: #ffffff;
  border: 2px solid rgba(32, 32, 41, 0.16);
  border-radius: 999px;
  box-shadow: 0 0 0 7px rgba(255, 255, 255, 0.92);
  font-size: 0.82rem;
  font-weight: 800;
}

.candidate-flow-step span::after {
  width: 10px;
  height: 10px;
  content: "";
  background: rgba(32, 32, 41, 0.24);
  border-radius: 999px;
}

.candidate-flow-step > div {
  display: grid;
  gap: 6px;
  padding: 2px 0 0;
}

.candidate-flow-step.is-complete span,
.candidate-flow-step.is-current span {
  background: var(--color-accent);
  border-color: var(--color-accent);
  box-shadow:
    0 0 0 7px rgba(141, 255, 0, 0.16),
    0 12px 30px rgba(99, 182, 0, 0.18);
}

.candidate-flow-step.is-complete span::after {
  width: auto;
  height: auto;
  content: "✓";
  background: transparent;
  border-radius: 0;
}

.candidate-flow-step.is-current span::after {
  width: 12px;
  height: 12px;
  background: #315b00;
  box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.76);
}

.candidate-flow-step.is-pending {
  opacity: 0.7;
}

.candidate-flow-step.is-pending span {
  background: #ffffff;
}

.candidate-card-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.candidate-card {
  width: 100%;
  display: grid;
  gap: 10px;
  padding: 18px;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
  transition:
    border-color 160ms ease,
    box-shadow 160ms ease,
    transform 160ms ease;
}

.candidate-card:hover,
.candidate-card:focus-visible {
  border-color: rgba(99, 182, 0, 0.48);
  box-shadow: 0 20px 52px rgba(49, 91, 0, 0.14);
  transform: translateY(-2px);
}

.candidate-card:focus-visible {
  outline: 3px solid rgba(0, 173, 186, 0.28);
  outline-offset: 2px;
}

.candidate-card small {
  width: max-content;
  color: #087b8f;
  font-size: 0.75rem;
  font-weight: 800;
}

.candidate-card svg {
  width: 28px;
  height: 28px;
  fill: none;
  stroke: #315b00;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.candidate-jobs {
  display: grid;
  gap: 12px;
}

.candidate-job-card {
  display: grid;
  gap: 10px;
  padding: 18px;
}

.candidate-job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.candidate-job-meta li {
  padding: 6px 9px;
  color: #555762;
  border: 1px solid rgba(32, 32, 41, 0.1);
  border-radius: 999px;
  font-size: 0.8rem;
}

.candidate-job-action {
  width: max-content;
  max-width: 100%;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 13px;
  color: #174f5a;
  background: #d9f8ff;
  border: 1px solid rgba(0, 143, 168, 0.2);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  transition:
    color 160ms ease,
    background 160ms ease,
    transform 160ms ease;
}

.candidate-job-action:hover,
.candidate-job-action:focus-visible {
  color: #ffffff;
  background: #087b8f;
  transform: translateY(-1px);
}

.candidate-job-action svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.candidate-resume-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.candidate-button {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  color: #202029;
  background: var(--color-accent);
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
  text-decoration: none;
  transition:
    transform 160ms ease,
    background 160ms ease,
    color 160ms ease;
}

.candidate-button.secondary {
  background: #ffffff;
  border-color: rgba(32, 32, 41, 0.12);
}

.candidate-button.is-icon-only {
  width: 46px;
  flex: 0 0 46px;
  padding: 0;
}

.candidate-button.is-icon-only svg,
.candidate-button.is-icon-only .candidate-download-icon {
  width: 21px;
  height: 21px;
  display: block;
}

.candidate-button.is-icon-only svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.candidate-download-icon {
  background: currentColor;
  -webkit-mask: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVR4nO3ZMUsCYRzH8W+WSASB0IvqbKrdrbGtwbfg0NjW5mSTk1OTSATZa0jw7l0oPnFgEHLied09/+fw94H/coN8f+OdICJluwESwG1dDETUQJwR/3sLasDtueA5DTCmAdY0wJoGWNMAaxpgTQOsBT/gPUdk0Zv6GDCrcMCnjwFt4KOC+C/gCk8ugLcS4yfAJZ61gFEJ8WPgHCNN4PUf8cPNb5g6BV4KxA+AMwJxAjwdEP8MNAhQL0d8n8A9AOuM8PTZIzXRBZZ/4lfAPTVzt/kWmt6tdYyIiD8dYF7hS0vRm+f9j20RQKzbcclRDIiA7wBi3dalTdd5Bogckx9cZtFBbxQorgAAAABJRU5ErkJggg==") center / contain no-repeat;
  mask: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAABAElEQVR4nO3ZMUsCYRzH8W+WSASB0IvqbKrdrbGtwbfg0NjW5mSTk1OTSATZa0jw7l0oPnFgEHLied09/+fw94H/coN8f+OdICJluwESwG1dDETUQJwR/3sLasDtueA5DTCmAdY0wJoGWNMAaxpgTQOsBT/gPUdk0Zv6GDCrcMCnjwFt4KOC+C/gCk8ugLcS4yfAJZ61gFEJ8WPgHCNN4PUf8cPNb5g6BV4KxA+AMwJxAjwdEP8MNAhQL0d8n8A9AOuM8PTZIzXRBZZ/4lfAPTVzt/kWmt6tdYyIiD8dYF7hS0vRm+f9j20RQKzbcclRDIiA7wBi3dalTdd5Bogckx9cZtFBbxQorgAAAABJRU5ErkJggg==") center / contain no-repeat;
}

.candidate-button:hover,
.candidate-button:focus-visible {
  transform: translateY(-1px);
  color: #ffffff;
  background: var(--color-accent-dark);
}

.candidate-state-switch {
  position: fixed;
  right: max(18px, env(safe-area-inset-right));
  bottom: max(18px, env(safe-area-inset-bottom));
  z-index: 80;
  display: grid;
  justify-items: end;
  gap: 10px;
}

.candidate-state-toggle,
.candidate-state-panel {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid rgba(32, 32, 41, 0.1);
  border-radius: 8px;
  box-shadow: 0 18px 50px rgba(38, 48, 28, 0.14);
  backdrop-filter: blur(18px);
}

.candidate-state-toggle {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px;
  color: #202029;
  font-weight: 700;
}

.candidate-state-toggle svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform 180ms ease;
}

.candidate-state-switch.is-open .candidate-state-toggle svg {
  transform: rotate(180deg);
}

.candidate-state-panel {
  width: min(320px, calc(100vw - 32px));
  display: grid;
  gap: 10px;
  padding: 14px;
}

.candidate-state-panel[hidden] {
  display: none;
}

.candidate-state-panel strong {
  color: #202029;
  font-size: 0.98rem;
  font-weight: 700;
}

.candidate-state-panel p,
.candidate-state-panel small {
  margin: 0;
  color: #696a73;
  font-size: 0.84rem;
  line-height: 1.4;
}

.candidate-state-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.candidate-state-options button {
  min-height: 42px;
  padding: 0 12px;
  color: #202029;
  background: #ffffff;
  border: 1px solid rgba(32, 32, 41, 0.12);
  border-radius: 999px;
  font-weight: 700;
}

.candidate-state-options button.is-active,
.candidate-state-options button:hover,
.candidate-state-options button:focus-visible {
  background: var(--color-accent);
  border-color: transparent;
}

.candidate-credential-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.candidate-credential-card {
  display: flex;
  min-height: 190px;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: column;
  gap: 22px;
}

.candidate-credential-card h2,
.candidate-credential-card p {
  margin: 0;
}

.candidate-credential-card h2 {
  font-size: 1.05rem;
  font-weight: 600;
}

.candidate-credential-card p {
  margin-top: 7px;
  color: #696b73;
  line-height: 1.55;
}

.candidate-delete-card {
  border-color: rgba(154, 40, 40, 0.24);
  background: #fffafa;
}

.candidate-delete-card h2 {
  color: #912b2b;
}

.candidate-delete-button,
.candidate-delete-button:hover,
.candidate-delete-button:focus-visible {
  color: #fff;
  background: #a62d37;
}

.candidate-delete-modal .password-modal-card {
  border-color: rgba(166, 45, 55, 0.26);
}

.candidate-delete-modal .password-modal-card header span {
  color: #912b2b;
}

.candidate-delete-modal form > p:first-child {
  margin: 0;
  color: #4f5158;
  line-height: 1.6;
}

.candidate-delete-modal .candidate-delete-status {
  min-height: 22px;
  margin: 0;
  color: #4f5158;
  font-size: 0.88rem;
}

.candidate-delete-modal .candidate-delete-status.is-error { color: #a32730; }
.candidate-delete-modal .candidate-delete-status.is-success { color: #315b00; }

.candidate-delete-modal .password-modal-actions button[type="submit"] {
  color: #fff;
  background: #a62d37;
}

@keyframes candidate-rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 980px) {
  .candidate-site {
    height: auto;
    min-height: 100svh;
    overflow: visible;
  }

  .candidate-portal {
    width: 100%;
    height: auto;
    min-height: calc(100svh - var(--header-height));
    padding-inline: clamp(18px, 4vw, 32px);
    overflow: visible;
  }

  .candidate-workspace,
  .candidate-workspace.is-sidebar-collapsed {
    grid-template-columns: 1fr;
    height: auto;
  }

  .candidate-app {
    height: auto;
    overflow: visible;
  }

  .candidate-sidebar {
    width: 100%;
    min-width: 0;
    position: static;
    height: auto;
    max-height: none;
    grid-template-rows: auto;
    overflow: visible;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar {
    width: 100%;
    min-width: 0;
    padding: 11px;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-menu button,
  .candidate-workspace.is-sidebar-collapsed .candidate-menu a,
  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar-footer a,
  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar-footer button {
    justify-content: flex-start;
    gap: 7px;
    padding: 0 8px;
    overflow: visible;
    font-size: 0.79rem;
  }

  .candidate-sidebar-toggle {
    display: none;
  }

  .candidate-menu,
  .candidate-sidebar-footer {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .candidate-menu {
    padding-top: 0;
  }

  .candidate-main {
    height: auto;
    overflow: visible;
    padding-right: 0;
  }

  .candidate-grid,
  .candidate-card-grid {
    grid-template-columns: 1fr;
  }
}

.candidate-documents-hero {
  align-items: center;
}

.candidate-documents-profile {
  justify-self: end;
  max-width: 100%;
  padding: 9px 13px;
  color: #315b00;
  background: #efffdc;
  border: 1px solid rgba(99, 182, 0, 0.24);
  border-radius: 999px;
  font-size: 0.8rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.candidate-documents-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.candidate-documents-summary article {
  min-width: 0;
  display: grid;
  gap: 7px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(32, 32, 41, 0.09);
  border-left: 4px solid #747782;
  border-radius: 8px;
  box-shadow: 0 12px 32px rgba(38, 48, 28, 0.07);
}

.candidate-documents-summary article.is-pending {
  border-left-color: #d88400;
}

.candidate-documents-summary article.is-review {
  border-left-color: #087b8f;
}

.candidate-documents-summary article.is-complete {
  border-left-color: #63b600;
}

.candidate-documents-summary span {
  color: #696a73;
  font-size: 0.76rem;
  font-weight: 700;
}

.candidate-documents-summary strong {
  color: #202029;
  font-size: 1.55rem;
  line-height: 1;
}

.candidate-documents-panel {
  gap: 14px;
}

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

.candidate-documents-heading > div {
  display: grid;
  gap: 5px;
}

.candidate-documents-heading p {
  font-size: 0.84rem;
}

.candidate-documents-feedback {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 10px;
  color: #4f5159;
  background: #f4f5f1;
  border-radius: 999px;
  font-size: 0.74rem !important;
  font-weight: 700;
  text-align: center;
}

.candidate-documents-feedback.is-success {
  color: #315b00;
  background: #efffdc;
}

.candidate-documents-feedback.is-error {
  color: #9d241a;
  background: #fff0ed;
}

.candidate-documents-list {
  display: grid;
  gap: 10px;
}

.candidate-document-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 14px;
  background: #f9faf7;
  border: 1px solid rgba(32, 32, 41, 0.09);
  border-radius: 8px;
  transition: opacity 160ms ease, border-color 160ms ease;
}

.candidate-document-card.is-uploading {
  opacity: 0.62;
  border-color: rgba(8, 123, 143, 0.35);
}

.candidate-document-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #315b00;
  background: #efffdc;
  border-radius: 8px;
}

.candidate-document-icon svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.candidate-document-copy {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.candidate-document-title {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.candidate-document-title strong {
  color: #202029;
  font-size: 0.94rem;
  overflow-wrap: anywhere;
}

.candidate-document-copy p {
  color: #62646d;
  font-size: 0.82rem;
  line-height: 1.4;
}

.candidate-document-copy small {
  color: #868891;
  font-size: 0.72rem;
}

.candidate-document-status {
  padding: 4px 8px;
  color: #646771;
  background: #eceee8;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
  white-space: nowrap;
}

.candidate-document-status.is-pending {
  color: #875100;
  background: #fff1c9;
}

.candidate-document-status.is-review {
  color: #075c6b;
  background: #d9f8ff;
}

.candidate-document-status.is-sent,
.candidate-document-status.is-approved {
  color: #315b00;
  background: #e8f8d5;
}

.candidate-document-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.candidate-document-action {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  color: #202029;
  background: var(--color-accent);
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-size: 0.74rem;
  font-weight: 800;
  text-decoration: none;
}

.candidate-document-action.secondary {
  color: #315b00;
  background: #ffffff;
  border-color: rgba(49, 91, 0, 0.2);
}

.candidate-document-action:hover,
.candidate-document-action:focus-visible {
  color: #ffffff;
  background: #315b00;
}

.candidate-document-action[aria-disabled="true"] {
  pointer-events: none;
}

.candidate-documents-empty {
  min-height: 150px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  padding: 24px;
  color: #696a73;
  background: #f9faf7;
  border: 1px dashed rgba(32, 32, 41, 0.16);
  border-radius: 8px;
  text-align: center;
}

.candidate-documents-empty strong {
  color: #202029;
}

.candidate-documents-empty span {
  line-height: 1.45;
}

.candidate-documents-empty.is-error {
  color: #9d241a;
  background: #fff8f6;
  border-color: rgba(180, 35, 24, 0.24);
}

@media (max-width: 880px) {
  .candidate-documents-summary {
    grid-template-columns: 1fr 1fr;
  }

  .candidate-document-card {
    grid-template-columns: 42px minmax(0, 1fr);
  }

  .candidate-document-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding-left: 56px;
  }
}

@media (max-width: 560px) {
  .candidate-documents-profile {
    justify-self: center;
  }

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

  .candidate-documents-heading {
    display: grid;
  }

  .candidate-documents-feedback {
    justify-self: start;
  }

  .candidate-document-card {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
    padding: 12px;
  }

  .candidate-document-icon {
    width: 36px;
    height: 36px;
  }

  .candidate-document-actions {
    padding-left: 46px;
  }

  .candidate-document-action {
    flex: 1 1 140px;
  }
}

@media (max-width: 760px) {
  .candidate-credential-grid {
    grid-template-columns: 1fr;
  }

  .candidate-portal {
    width: 100%;
    padding: 18px 14px 96px;
  }

  .candidate-app {
    padding: 12px;
  }

  .candidate-hero {
    grid-template-columns: 1fr;
  }

  .candidate-hero {
    text-align: center;
    justify-items: center;
  }

  .candidate-menu,
  .candidate-sidebar-footer {
    grid-template-columns: 1fr 1fr;
  }

  .candidate-menu button,
  .candidate-menu a,
  .candidate-sidebar-footer a,
  .candidate-sidebar-footer button {
    text-align: center;
    justify-content: center;
  }

  .candidate-state-switch {
    right: 14px;
    bottom: 14px;
  }
}

/* Mobile system navigation mirrors the public hamburger behavior. */
@media (max-width: 980px) {
  .candidate-sidebar-brand {
    min-height: 36px;
    display: flex;
    align-items: center;
    padding: 2px 44px 7px 2px;
    border-bottom: 1px solid rgba(32, 32, 41, 0.08);
  }

  .candidate-sidebar-brand img {
    width: min(100%, 142px);
    max-height: 30px;
    object-fit: contain;
    object-position: left center;
  }

  .candidate-sidebar-toggle {
    display: grid;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
  }

  .candidate-sidebar-toggle svg {
    width: 20px;
    height: 20px;
  }

  .candidate-sidebar {
    max-height: calc(100svh - 28px);
    overflow-y: auto;
  }

  .candidate-menu,
  .candidate-sidebar-footer {
    grid-template-columns: 1fr;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar {
    min-height: 54px;
    height: 54px;
    grid-template-columns: minmax(0, 1fr) 34px;
    grid-template-rows: 1fr;
    align-items: center;
    padding: 9px;
    overflow: hidden;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-menu,
  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar-footer {
    display: none !important;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar-toggle {
    position: static;
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
    z-index: 6;
    transform: none;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar-brand {
    position: static;
    grid-column: 1;
    grid-row: 1;
    width: auto;
    min-height: 0;
    align-items: center;
    padding: 0;
    border: 0;
  }

  .candidate-workspace.is-sidebar-collapsed .candidate-sidebar-brand img {
    width: min(100%, 148px);
    height: 26px;
    max-height: 26px;
    object-fit: contain;
    object-position: left center;
  }
}
