@font-face {
  font-family: "Geist Sans";
  src: url("../fonts/geist/Geist-Variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

html {
  font-size: 14px;
  --podium-primary: #156fd6;
  --podium-primary-dark: #0b4ea2;
  --podium-primary-teal: #08979a;
  --podium-primary-teal-dark: #08777b;
  --podium-primary-gradient: linear-gradient(135deg, var(--podium-primary) 0%, var(--podium-primary-teal) 100%);
  --podium-primary-soft: #eef7fb;
  --podium-surface: #fff;
  --podium-surface-soft: #fff;
  --podium-border: #ece8e5;
  --podium-ink: #171326;
  --podium-muted: #706b7a;
  --podium-hairline: rgb(0 0 0 / 20%);
  --podium-shadow: 0 12px 32px rgb(57 35 47 / 18%);
  --podium-shadow-soft: 0 6px 18px rgb(57 35 47 / 14%);
  --podium-font-sans: "Geist Sans", "Segoe UI Variable Text", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --podium-font-document: Georgia, "Times New Roman", serif;
  --bs-primary: #156fd6;
  --bs-primary-rgb: 21, 111, 214;
  --bs-link-color: #156fd6;
  --bs-link-hover-color: #0b4ea2;
}

.status-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    overflow: hidden;
    border: 1px solid var(--app-border, #d8d4d1);
    border-radius: 0.75rem;
    background: #fff;
    box-shadow: 0 1px 3px rgb(15 23 42 / 8%);
}

.status-strip-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.25rem;
    padding: 1rem 1.125rem;
    border-right: 1px solid var(--app-border, #e5e1de);
}

.status-strip-item:last-child {
    border-right: 0;
}

.status-strip-item span {
    color: #64748b;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.status-strip-item strong {
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    .status-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .status-strip-item:nth-child(2) {
        border-right: 0;
    }

    .status-strip-item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--app-border, #e5e1de);
    }
}

.time-clock-panel {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.time-clock-display {
    margin: 1.25rem 0;
    color: var(--bs-primary);
    font-size: clamp(2.5rem, 7vw, 5rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: .03em;
    line-height: 1;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgb(8 151 154 / 32%);
}

html {
  position: relative;
  min-height: 100%;
}

body {
  min-height: 100vh;
  margin-bottom: 72px;
  background: #fff;
  color: #1f2937;
  font-family: var(--podium-font-sans);
}

.text-primary {
  color: var(--podium-primary) !important;
}

.bg-primary {
  background: var(--podium-primary-gradient) !important;
}

.btn {
  border-radius: 999px;
  font-weight: 650;
}

.btn-sm {
  border-radius: 999px;
}

.btn-primary {
  border-color: transparent;
  background-image: var(--podium-primary-gradient);
  background-color: var(--podium-primary);
  box-shadow: 0 8px 18px rgb(8 151 154 / 16%);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
  border-color: transparent;
  background-image: linear-gradient(135deg, var(--podium-primary-dark) 0%, var(--podium-primary-teal-dark) 100%);
  background-color: var(--podium-primary-dark);
  box-shadow: 0 10px 22px rgb(8 151 154 / 22%);
}

.btn-outline-primary {
  border-color: rgb(21 111 214 / 55%);
  color: var(--podium-primary);
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active {
  border-color: transparent;
  background-image: var(--podium-primary-gradient);
  color: #fff;
}

.badge {
  border-radius: 999px;
  padding: 0.4em 0.72em;
  font-weight: 700;
}

.text-bg-primary {
  background-color: var(--podium-primary) !important;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.app-navbar {
  box-shadow: 0 1px 2px rgb(15 23 42 / 8%);
}

.navbar-brand {
  font-weight: 650;
  letter-spacing: 0;
}

.brand-logo {
  display: block;
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.nav-link {
  color: #374151;
}

.app-navbar .navbar-nav .nav-link,
.app-navbar .navbar-nav .nav-link:visited,
.app-navbar .navbar-nav .nav-link.dropdown-toggle,
.app-navbar .navbar-nav .nav-link.dropdown-toggle:visited,
.app-navbar .navbar-nav .nav-link.show,
.app-navbar .navbar-nav .show > .nav-link,
.app-navbar .navbar-nav .nav-link.active {
  color: #374151;
}

.navbar-nav .nav-link.show,
.navbar-nav .show > .nav-link,
.navbar-nav .nav-link.active {
  color: #374151;
}

.app-navbar .navbar-nav .nav-link:hover,
.app-navbar .navbar-nav .nav-link:focus,
.app-navbar .navbar-nav .nav-link.dropdown-toggle:hover,
.app-navbar .navbar-nav .nav-link.dropdown-toggle:focus {
  color: #374151;
}

.nav-link:hover,
.nav-link:focus {
  color: #374151;
}

.nav-link.disabled {
  color: #6b7280;
}

.app-primary-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.nav-icon {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.82;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.app-primary-nav .nav-link:hover .nav-icon,
.app-primary-nav .nav-link:focus .nav-icon {
  opacity: 1;
  transform: translateY(-1px);
}

.app-primary-nav .nav-link:hover,
.app-primary-nav .nav-link:focus,
.app-primary-nav .nav-link.show {
  background: #f3f6fa;
}

.app-primary-nav .dropdown-toggle::after {
  margin-left: 0.1rem;
}

.dropdown-header {
  color: #526070;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.app-account-nav {
  gap: 8px;
}

.utility-icon-link,
.avatar-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid #d7dde5;
  border-radius: 50%;
  background: #fff;
  color: #374151;
  text-decoration: none;
  transition: border-color 0.15s ease, color 0.15s ease, background-color 0.15s ease;
}

.utility-icon-link:hover,
.utility-icon-link:focus,
.avatar-button:hover,
.avatar-button:focus {
  border-color: var(--podium-primary);
  background: #f8fbff;
  color: var(--podium-primary);
}

.utility-icon {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.notification-count-badge {
  position: absolute;
  top: -5px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #dc3545;
  color: #fff;
  font-size: 0.67rem;
  font-weight: 700;
  line-height: 14px;
  text-align: center;
}

.avatar-button {
  padding: 0;
}

.avatar-button.dropdown-toggle::after {
  display: none;
}

.avatar-initial {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: var(--podium-primary-gradient);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
}

.employee-avatar {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1px solid rgb(255 255 255 / 65%);
  border-radius: 50%;
  background: var(--avatar-bg, #0f6cbd);
  color: #fff;
  line-height: 1;
  text-align: center;
  box-shadow: inset 0 0 0 1px rgb(15 23 42 / 8%);
}

.employee-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.employee-avatar-sm {
  width: 40px;
  height: 40px;
  font-size: 0.78rem;
  font-weight: 700;
}

.employee-avatar-xl {
  width: 128px;
  height: 128px;
  font-size: 2rem;
  font-weight: 750;
}

.employee-photo-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}

.employee-list-identity {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 220px;
}

.employee-directory-heading { align-items: center; }
.employee-directory-intro { max-width: 650px; margin: 7px 0 0; color: #6b6670; }
.employee-directory-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.employee-directory-panel { max-width: 100%; padding: 0; overflow: hidden; }
.employee-directory-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px 16px; }
.employee-directory-panel-header h2 { margin: 0; font-size: 1.08rem; }
.employee-directory-panel-header p { margin: 4px 0 0; color: #77717a; font-size: 0.86rem; }
.employee-clear-filters { font-size: 0.88rem; font-weight: 650; text-decoration: none; }
.employee-filter-panel { display: grid; grid-template-columns: minmax(260px, 1.5fr) minmax(150px, 0.65fr) minmax(170px, 0.7fr) auto; gap: 12px; padding: 16px 22px; border-top: 1px solid #e8e4e1; border-bottom: 1px solid #e8e4e1; background: #faf9f7; }
.employee-filter-panel .form-label { margin-bottom: 5px; color: #5d5760; font-size: 0.78rem; font-weight: 700; }
.employee-search-field .input-group-text { padding-right: 4px; border-right: 0; background: #fff; color: #77717a; }
.employee-search-field .input-group-text svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.employee-search-field .form-control { border-left: 0; }
.employee-filter-submit { align-self: end; }
.employee-quick-filters { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; }
.employee-filter-chip { position: relative; cursor: pointer; }
.employee-filter-chip input { position: absolute; opacity: 0; pointer-events: none; }
.employee-filter-chip span { display: inline-flex; align-items: center; min-height: 32px; padding: 5px 11px; border: 1px solid #d3cfcb; border-radius: 999px; background: #fff; color: #5e5860; font-size: 0.8rem; font-weight: 650; }
.employee-filter-chip input:checked + span { border-color: #8e155f; background: #fbeaf4; color: #78104f; box-shadow: inset 0 0 0 1px #8e155f; }
.employee-filter-chip input:focus-visible + span { outline: 3px solid rgb(13 110 253 / 25%); outline-offset: 2px; }
.employee-directory-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.employee-directory-table { width: 100%; min-width: 940px; margin: 0; }
.employee-directory-table thead th { padding: 12px 16px; border-bottom: 1px solid #dedad7; background: #fff; color: #7a747d; font-size: 0.69rem; font-weight: 750; letter-spacing: 0.045em; text-transform: uppercase; white-space: nowrap; }
.employee-directory-table tbody tr { transition: background-color 120ms ease; }
.employee-directory-table tbody tr:hover { background: #fcfaf9; }
.employee-directory-table tbody td { padding: 15px 16px; border-bottom: 1px solid #ebe8e5; color: #342f35; vertical-align: middle; }
.employee-directory-table tbody tr:last-child td { border-bottom: 0; }
.employee-avatar-list { width: 46px; height: 46px; flex: 0 0 46px; font-size: 0.82rem; font-weight: 750; }
.employee-list-name { min-width: 0; }
.employee-list-name > a { display: block; color: #251f25; font-weight: 750; text-decoration: none; }
.employee-list-name > a:hover { color: var(--bs-primary); text-decoration: underline; }
.employee-list-name > span,
.employee-list-name > small { display: block; max-width: 250px; overflow: hidden; color: #77717a; font-size: 0.78rem; text-overflow: ellipsis; white-space: nowrap; }
.employee-list-name > small { margin-top: 2px; color: #948e96; font-size: 0.7rem; }
.employee-table-primary,
.employee-table-secondary { display: block; }
.employee-table-primary { font-size: 0.86rem; font-weight: 650; }
.employee-table-secondary { margin-top: 3px; color: #7b747d; font-size: 0.75rem; }
.employee-status-pill { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 3px; padding: 3px 8px; border-radius: 999px; background: #f2f1ef; color: #5f5961; font-size: 0.72rem; font-weight: 700; }
.employee-status-pill > span { width: 7px; height: 7px; border-radius: 50%; background: #8e8990; }
.employee-status-pill.is-active { background: #e9f7ef; color: #237044; }
.employee-status-pill.is-active > span { background: #2ca565; }
.employee-status-pill.is-on-leave { background: #fff4d9; color: #806014; }
.employee-status-pill.is-on-leave > span { background: #d89d16; }
.employee-status-pill.is-terminated { background: #f1efef; color: #756e73; }
.employee-readiness-list { display: grid; gap: 5px; min-width: 160px; }
.employee-readiness-list span { display: flex; align-items: center; gap: 7px; color: #69636b; font-size: 0.75rem; font-weight: 600; }
.employee-readiness-list i { width: 7px; height: 7px; flex: 0 0 7px; border-radius: 50%; background: #aaa5aa; }
.employee-readiness-list .is-ready i { background: #28a163; }
.employee-readiness-list .needs-action { color: #a04a19; }
.employee-readiness-list .needs-action i { background: #ef6b3d; }
.employee-row-actions { width: 1%; text-align: right; white-space: nowrap; }
.employee-row-actions > * { display: inline-block; vertical-align: middle; }
.employee-more-button { min-width: 34px; border: 0; color: #655f66; font-weight: 750; letter-spacing: 0.08em; }
.employee-more-button:hover,
.employee-more-button:focus { background: #f0edeb; }
.employee-directory-empty { padding: 64px 20px; }

@media (max-width: 1199.98px) {
  .employee-filter-panel { grid-template-columns: minmax(260px, 1fr) repeat(2, minmax(150px, 0.55fr)); }
  .employee-filter-submit { grid-column: 1 / -1; justify-self: start; }
  .employee-directory-table th:nth-child(3),
  .employee-directory-table td:nth-child(3) { display: none; }
}

@media (max-width: 767.98px) {
  .employee-directory-heading { align-items: flex-start; }
  .employee-directory-actions { width: 100%; }
  .employee-directory-actions .btn-primary { order: -1; }
  .employee-directory-panel-header { padding: 18px 16px 14px; }
  .employee-filter-panel { grid-template-columns: 1fr; padding: 14px 16px; }
  .employee-filter-submit,
  .employee-quick-filters { grid-column: auto; }
  .employee-filter-submit { width: 100%; }
  .employee-directory-table-wrap { padding: 10px; overflow: visible; }
  .employee-directory-table thead { display: none; }
  .employee-directory-table,
  .employee-directory-table tbody,
  .employee-directory-table tr,
  .employee-directory-table td { display: block; width: 100%; min-width: 0; }
  .employee-directory-table tbody tr { position: relative; margin-bottom: 10px; padding: 14px; border: 1px solid #dedad7; border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgb(42 30 36 / 7%); }
  .employee-directory-table tbody tr:last-child { margin-bottom: 0; }
  .employee-directory-table tbody td { display: grid; grid-template-columns: 105px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #efedeb; }
  .employee-directory-table tbody td::before { content: attr(data-label); color: #837d84; font-size: 0.7rem; font-weight: 750; letter-spacing: 0.035em; text-transform: uppercase; }
  .employee-directory-table tbody td:first-child { display: block; padding-top: 0; }
  .employee-directory-table tbody td:first-child::before,
  .employee-directory-table tbody td:nth-child(3) { display: none; }
  .employee-directory-table tbody td:nth-last-child(2) { border-bottom: 0; }
  .employee-row-actions { display: flex !important; justify-content: flex-end; gap: 4px !important; padding: 12px 0 0 !important; border: 0 !important; }
  .employee-row-actions::before { display: none; }
  .employee-row-actions .btn-outline-primary { min-width: 92px; }
}

.payroll-list-heading { align-items: center; }
.payroll-list-heading > div > p:last-child { max-width: 680px; margin: 7px 0 0; color: #6b6670; }
.payroll-list-panel { padding: 0; overflow: visible; }
.payroll-list-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 22px 16px; }
.payroll-list-panel-header h2 { margin: 0; font-size: 1.08rem; }
.payroll-list-panel-header p { margin: 4px 0 0; color: #77717a; font-size: 0.84rem; }
.payroll-list-panel-header > a { font-size: 0.86rem; font-weight: 650; text-decoration: none; }
.payroll-filter-panel { display: grid; align-items: end; gap: 12px; padding: 16px 22px; border-top: 1px solid #e8e4e1; border-bottom: 1px solid #e8e4e1; background: #faf9f7; }
.payroll-filter-panel-four { grid-template-columns: minmax(250px, 1.2fr) minmax(160px, 0.65fr) minmax(180px, 0.7fr) auto; }
.payroll-filter-panel-compact { grid-template-columns: minmax(280px, 1fr) minmax(180px, 0.45fr) auto; }
.payroll-filter-panel .form-label { margin-bottom: 5px; color: #5d5760; font-size: 0.78rem; font-weight: 700; }
.payroll-search-field .input-group-text { padding-right: 5px; border-right: 0; background: #fff; color: #77717a; font-size: 1.15rem; line-height: 1; }
.payroll-search-field .form-control { border-left: 0; }
.payroll-table-wrap { overflow: visible; }
.payroll-modern-table { width: 100%; margin: 0; }
.payroll-modern-table thead th { padding: 12px 16px; border-bottom: 1px solid #dedad7; color: #7a747d; font-size: 0.69rem; font-weight: 750; letter-spacing: 0.045em; text-transform: uppercase; white-space: nowrap; }
.payroll-modern-table tbody tr { transition: background-color 120ms ease; }
.payroll-modern-table tbody tr:hover { background: #fcfaf9; }
.payroll-modern-table tbody td { padding: 15px 16px; border-bottom: 1px solid #ebe8e5; color: #342f35; vertical-align: middle; }
.payroll-modern-table tbody tr:last-child td { border-bottom: 0; }
.payroll-cell-title,
.payroll-cell-subtitle { display: block; }
.payroll-cell-title { font-size: 0.84rem; font-weight: 700; }
.payroll-cell-subtitle { margin-top: 3px; color: #77717a; font-size: 0.75rem; }
.payroll-hours strong { display: block; color: #2d282e; font-size: 1rem; }
.payroll-hours strong small { color: #77717a; font-size: 0.68rem; font-weight: 600; }
.payroll-hours span { color: #77717a; font-size: 0.72rem; }
.payroll-status-pill { display: inline-flex; align-items: center; min-height: 25px; padding: 4px 9px; border-radius: 999px; font-size: 0.7rem; font-weight: 750; white-space: nowrap; }
.payroll-status-pill.text-bg-success,
.payroll-status-succeeded,
.payroll-status-approved,
.payroll-status-connected,
.payroll-status-synced { background: #e8f7ef !important; color: #237044 !important; }
.payroll-status-pill.text-bg-danger,
.payroll-status-failed,
.payroll-status-rejected,
.payroll-status-returned,
.payroll-status-blocked { background: #fdeceb !important; color: #a33d37 !important; }
.payroll-status-pill.text-bg-primary,
.payroll-status-processing,
.payroll-status-submitted,
.payroll-status-submittedtopayroll { background: #eaf1fb !important; color: #2e5f97 !important; }
.payroll-status-pill.text-bg-warning,
.payroll-status-pending,
.payroll-status-awaitingreview,
.payroll-status-awaitingcredentials,
.payroll-status-notready { background: #fff4d9 !important; color: #806014 !important; }
.payroll-status-pill.text-bg-secondary,
.payroll-status-notconfigured { background: #efedeb !important; color: #625c63 !important; }
.payroll-direction-label { display: inline-flex; padding: 4px 8px; border: 1px solid #d8d4d1; border-radius: 5px; color: #625c63; font-size: 0.72rem; font-weight: 700; }
.payroll-error-summary { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.payroll-row-action { width: 1%; text-align: right; white-space: nowrap; }
.payroll-inline-decision { display: inline-flex; align-items: center; gap: 7px; }
.payroll-inline-decision input { width: 145px; }
.payroll-complete-label { color: #4d8061; font-size: 0.74rem; font-weight: 700; }
.payroll-action-menu { width: 245px; padding: 12px; }
.payroll-action-menu form { display: grid; gap: 7px; }
.payroll-action-menu .form-label { margin: 0; color: #6b6570; font-size: 0.72rem; font-weight: 700; }
.payroll-list-empty { padding: 58px 20px; }
.payroll-config-card { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.payroll-config-card > div:first-child { display: flex; align-items: center; gap: 13px; }
.payroll-config-card h2 { margin: 0; font-size: 1rem; }
.payroll-config-card p { margin: 4px 0 0; color: #77717a; font-size: 0.8rem; }
.payroll-config-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 8px; background: #fbeaf4; color: #8e155f; font-weight: 800; }
.payroll-config-form { display: grid; grid-template-columns: minmax(140px, 0.5fr) minmax(300px, 1fr) auto; align-items: end; gap: 10px; flex: 1; max-width: 850px; }
.payroll-provider-form { display: flex; align-items: center; gap: 8px; }
.payroll-provider-form .form-select { min-width: 180px; }
.payroll-restricted-label { padding: 5px 9px; border-radius: 5px; background: #f3edf0; color: #704b61; font-size: 0.7rem; font-weight: 750; text-transform: uppercase; }
.payroll-connection-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid #ebe8e5; border-bottom: 1px solid #ebe8e5; background: #faf9f7; }
.payroll-connection-summary > div { padding: 14px 18px; border-right: 1px solid #ebe8e5; }
.payroll-connection-summary > div:last-child { border-right: 0; }
.payroll-connection-summary span,
.payroll-connection-summary strong { display: block; }
.payroll-connection-summary span { margin-bottom: 4px; color: #817b83; font-size: 0.69rem; font-weight: 700; text-transform: uppercase; }
.payroll-connection-summary strong { font-size: 0.82rem; }

@media (max-width: 991.98px) {
  .payroll-filter-panel-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payroll-filter-panel-compact { grid-template-columns: 1fr minmax(180px, 0.5fr) auto; }
  .payroll-config-card { align-items: stretch; flex-direction: column; }
  .payroll-config-form { width: 100%; max-width: none; }
  .payroll-modern-table th:nth-child(2),
  .payroll-modern-table td:nth-child(2) { display: none; }
}

@media (max-width: 767.98px) {
  .payroll-list-heading { align-items: flex-start; }
  .payroll-list-panel-header { padding: 18px 16px 14px; }
  .payroll-filter-panel,
  .payroll-filter-panel-four,
  .payroll-filter-panel-compact { grid-template-columns: 1fr; padding: 14px 16px; }
  .payroll-filter-panel .btn { width: 100%; }
  .payroll-table-wrap { padding: 10px; }
  .payroll-modern-table thead { display: none; }
  .payroll-modern-table,
  .payroll-modern-table tbody,
  .payroll-modern-table tr,
  .payroll-modern-table td { display: block !important; width: 100% !important; }
  .payroll-modern-table tbody tr { margin-bottom: 10px; padding: 14px; border: 1px solid #dedad7; border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgb(42 30 36 / 7%); }
  .payroll-modern-table tbody tr:last-child { margin-bottom: 0; }
  .payroll-modern-table tbody td { display: grid !important; grid-template-columns: 100px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #efedeb; text-align: left; }
  .payroll-modern-table tbody td::before { content: attr(data-label); color: #837d84; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.035em; text-transform: uppercase; }
  .payroll-row-action { display: flex !important; justify-content: flex-end; padding-top: 12px !important; border-bottom: 0 !important; }
  .payroll-row-action::before { display: none; }
  .payroll-inline-decision { width: 100%; }
  .payroll-inline-decision input { flex: 1; width: auto; }
  .payroll-error-summary { max-width: none; white-space: normal; }
  .payroll-config-form { grid-template-columns: 1fr; }
  .payroll-config-form .btn { width: 100%; }
  .payroll-provider-form { align-items: stretch; flex-direction: column; width: 100%; }
  .payroll-connection-summary { grid-template-columns: 1fr; }
  .payroll-connection-summary > div { border-right: 0; border-bottom: 1px solid #ebe8e5; }
  .payroll-connection-summary > div:last-child { border-bottom: 0; }
}

.major-milestone-heading { align-items: center; }
.major-milestone-heading > div > p:last-child { max-width: 680px; margin: 7px 0 0; color: #6b6670; }
.major-milestone-metrics { display: grid; grid-template-columns: 0.7fr 0.7fr 1.6fr; gap: 14px; margin-bottom: 16px; }
.major-milestone-metrics article { min-height: 112px; padding: 18px 20px; border: 1px solid #d9d7d3; border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgb(45 34 40 / 8%); }
.major-milestone-metrics span,
.major-milestone-metrics strong,
.major-milestone-metrics small { display: block; }
.major-milestone-metrics span { color: #756e76; font-size: 0.72rem; font-weight: 750; letter-spacing: 0.04em; text-transform: uppercase; }
.major-milestone-metrics strong { margin-top: 8px; color: #65013e; font-size: 1.9rem; line-height: 1; }
.major-milestone-metrics small { margin-top: 7px; color: #7b747c; font-size: 0.76rem; }
.major-milestone-metrics .major-milestone-next strong { font-size: 1.15rem; }
.major-milestone-panel { padding: 0; overflow: visible; }
.major-milestone-panel-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px 22px 16px; }
.major-milestone-panel-header h2 { margin: 0; font-size: 1.08rem; }
.major-milestone-panel-header p { margin: 4px 0 0; color: #77717a; font-size: 0.84rem; }
.major-milestone-horizons { display: flex; gap: 6px; }
.major-milestone-horizons .btn { padding: 5px 10px; font-size: 0.76rem; }
.major-milestone-filter { display: flex; align-items: end; gap: 9px; padding: 15px 22px; border-top: 1px solid #e8e4e1; border-bottom: 1px solid #e8e4e1; background: #faf9f7; }
.major-milestone-filter > div { width: min(420px, 100%); }
.major-milestone-filter .form-label { margin-bottom: 5px; color: #5d5760; font-size: 0.78rem; font-weight: 700; }
.major-milestone-filter > a { align-self: center; margin-top: 25px; font-size: 0.8rem; font-weight: 650; text-decoration: none; }
.major-milestone-table-wrap { overflow: visible; }
.major-milestone-table { margin: 0; }
.major-milestone-table thead th { padding: 12px 16px; border-bottom: 1px solid #dedad7; color: #7a747d; font-size: 0.69rem; font-weight: 750; letter-spacing: 0.045em; text-transform: uppercase; white-space: nowrap; }
.major-milestone-table tbody td { padding: 15px 16px; border-bottom: 1px solid #ebe8e5; color: #342f35; }
.major-milestone-table tbody tr:last-child td { border-bottom: 0; }
.major-milestone-table tbody tr:hover { background: #fcfaf9; }
.major-milestone-table td > strong,
.major-milestone-table td > span:not(.major-year-badge) { display: block; }
.major-milestone-table td > strong { font-size: 0.84rem; }
.major-milestone-table td > span:not(.major-year-badge) { margin-top: 3px; color: #77717a; font-size: 0.74rem; }
.major-year-badge { display: inline-flex; align-items: baseline; gap: 5px; min-width: 76px; padding: 7px 10px; border-radius: 7px; background: #fbeaf4; color: #721048; font-size: 0.72rem; font-weight: 700; }
.major-year-badge strong { font-size: 1.12rem; }
.major-milestone-actions { width: 1%; text-align: right; white-space: nowrap; }
.major-milestone-actions .btn + .btn { margin-left: 5px; }
.major-milestone-empty { padding: 58px 20px; }

@media (max-width: 991.98px) {
  .major-milestone-metrics { grid-template-columns: repeat(2, 1fr); }
  .major-milestone-next { grid-column: 1 / -1; }
  .major-milestone-table th:nth-child(5),
  .major-milestone-table td:nth-child(5) { display: none; }
}

@media (max-width: 767.98px) {
  .major-milestone-heading { align-items: flex-start; }
  .major-milestone-metrics { grid-template-columns: 1fr; }
  .major-milestone-next { grid-column: auto; }
  .major-milestone-panel-header { align-items: flex-start; flex-direction: column; padding: 18px 16px 14px; }
  .major-milestone-horizons { width: 100%; }
  .major-milestone-horizons .btn { flex: 1; }
  .major-milestone-filter { align-items: stretch; flex-direction: column; padding: 14px 16px; }
  .major-milestone-filter > div,
  .major-milestone-filter .btn { width: 100%; }
  .major-milestone-filter > a { align-self: flex-start; margin-top: 0; }
  .major-milestone-table-wrap { padding: 10px; }
  .major-milestone-table thead { display: none; }
  .major-milestone-table,
  .major-milestone-table tbody,
  .major-milestone-table tr,
  .major-milestone-table td { display: block !important; width: 100% !important; }
  .major-milestone-table tbody tr { margin-bottom: 10px; padding: 14px; border: 1px solid #dedad7; border-radius: 8px; background: #fff; box-shadow: 0 1px 3px rgb(42 30 36 / 7%); }
  .major-milestone-table tbody td { display: grid !important; grid-template-columns: 105px minmax(0, 1fr); gap: 10px; padding: 9px 0; border-bottom: 1px solid #efedeb; }
  .major-milestone-table tbody td::before { content: attr(data-label); color: #837d84; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.035em; text-transform: uppercase; }
  .major-milestone-actions { display: flex !important; justify-content: flex-end; padding-top: 12px !important; border-bottom: 0 !important; }
  .major-milestone-actions::before { display: none; }
}

.account-menu {
  min-width: 220px;
}

.header-signin-actions { display: flex; align-items: center; gap: 8px; }
.header-signin-actions form { margin: 0; }
.microsoft-signin-button,
.microsoft-signin-menu-item { display: inline-flex; align-items: center; gap: 7px; }
.microsoft-signin-button svg,
.microsoft-signin-menu-item svg { flex: 0 0 auto; width: 16px; height: 16px; fill: #0f6cbd; }
.microsoft-signin-menu-item { width: 100%; }

/* User access administration */
.users-admin-heading { align-items: flex-end; }
.users-admin-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.users-admin-summary article { display: grid; gap: 2px; padding: 16px 18px; border: 1px solid var(--podium-border); border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgb(15 23 42 / 5%); }
.users-admin-summary span { color: #6f666c; font-size: .67rem; font-weight: 750; letter-spacing: .02em; text-transform: uppercase; }
.users-admin-summary strong { color: #251d23; font-size: 1.55rem; line-height: 1.1; }
.users-admin-summary small { color: #827980; font-size: .66rem; }
.users-admin-summary article.is-success { border-color: #c9e4d9; background: #f5fbf8; }
.users-admin-summary article.is-privileged { border-color: #dfcbd7; background: #fbf6f9; }
.users-admin-panel { overflow: hidden; }
.users-admin-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 18px; border-bottom: 1px solid #e9e5e7; }
.users-admin-search { position: relative; display: flex; align-items: center; gap: 8px; flex: 1 1 680px; max-width: 760px; }
.users-admin-search > svg { position: absolute; left: 13px; z-index: 1; width: 17px; height: 17px; fill: none; stroke: #81777e; stroke-linecap: round; stroke-width: 1.8; pointer-events: none; }
.users-admin-search .form-control { min-width: 220px; padding-left: 39px; }
.users-result-count { flex: 0 0 auto; color: #786f75; font-size: .72rem; font-weight: 700; }
.users-admin-table-wrap { padding: 0 18px 8px; }
.users-admin-table { min-width: 920px; margin-bottom: 0; }
.users-user-cell { display: flex; align-items: center; gap: 11px; min-width: 240px; }
.users-user-cell > div { display: grid; gap: 1px; min-width: 0; }
.users-user-cell strong { overflow: hidden; color: #282027; font-size: .75rem; text-overflow: ellipsis; white-space: nowrap; }
.users-user-cell small { color: #8a8187; font-size: .64rem; }
.users-avatar { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: #f2e7ed; color: var(--podium-primary); font-size: .74rem; font-weight: 800; }
.users-linked-employee { display: flex; align-items: center; gap: 7px; }
.users-link-dot { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: #2e9671; box-shadow: 0 0 0 3px #e3f5ee; }
.users-status-pill,
.users-role-pill { display: inline-flex; align-items: center; width: fit-content; border: 1px solid #ddd8db; border-radius: 999px; background: #f8f6f7; color: #5f565c; font-size: .63rem; font-weight: 720; line-height: 1; }
.users-status-pill { padding: 6px 9px; }
.users-status-pill.is-success { border-color: #c4e0d5; background: #eaf7f1; color: #21694f; }
.users-status-pill.is-warning { border-color: #ecd8ab; background: #fff7e6; color: #8c5b0b; }
.users-role-list { display: flex; flex-wrap: wrap; gap: 6px; }
.users-role-pill { padding: 5px 8px; }
.users-role-pill.is-admin { border-color: #ddc4d3; background: #f7edf3; color: #700343; }

@media (max-width: 1199.98px) {
  .users-admin-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .users-admin-heading { align-items: flex-start; }
  .users-admin-toolbar,
  .users-admin-search { align-items: stretch; flex-direction: column; }
  .users-admin-search { flex-basis: auto; width: 100%; max-width: none; }
  .users-admin-search > svg { top: 11px; }
  .users-result-count { align-self: flex-start; }
}
@media (max-width: 575.98px) {
  .users-admin-summary { grid-template-columns: 1fr; }
}

.app-main {
  padding: 28px 0 36px;
}

.page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}

.page-heading h1 {
  margin: 0;
  font-size: 1.7rem;
  line-height: 1.2;
  font-weight: 650;
}

.metric-card,
.work-panel {
  height: 100%;
  border: 1px solid var(--podium-border);
  border-radius: 14px;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}

.metric-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 96px;
  padding: 18px 20px;
  color: #1f2937;
}

.metric-card-link {
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.metric-card-link:hover,
.metric-card-link:focus {
  border-color: rgb(8 151 154 / 42%);
  box-shadow: var(--podium-shadow);
  color: #1f2937;
  transform: translateY(-1px);
}

.operations-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}

.metric-label {
  display: block;
  max-width: 150px;
  color: #526070;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.25;
  text-transform: uppercase;
}

.metric-value {
  flex: 0 0 auto;
  margin-top: 10px;
  color: var(--podium-primary);
  font-size: 2.15rem;
  line-height: 1;
  font-weight: 700;
}

.metric-note {
  margin-top: 4px;
  color: #6b7280;
  font-size: 0.9rem;
}

@media (max-width: 1199.98px) {
  .operations-metric-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
}

@media (max-width: 575.98px) {
  .operations-metric-grid {
    grid-template-columns: 1fr;
  }
}

/* Home dashboard */
.home-dashboard {
  display: grid;
  width: 100%;
  max-width: none;
  gap: 18px;
  padding-bottom: 28px;
}

.home-welcome-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 132px;
  padding: 24px 28px;
  overflow: hidden;
  border: 1px solid #d9d7d3;
  border-radius: 12px;
  background:
    radial-gradient(circle at 92% 10%, rgb(228 82 59 / 22%), transparent 28%),
    linear-gradient(125deg, #65013e 0%, #810e50 58%, #5c073d 100%);
  color: #fff;
  box-shadow: 0 8px 24px rgb(45 24 35 / 13%);
}

.home-welcome-copy h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.75rem, 3vw, 2.35rem);
  font-weight: 720;
  letter-spacing: -0.035em;
}

.home-welcome-copy > p:last-child { margin: 7px 0 0; color: rgb(255 255 255 / 78%); }
.home-eyebrow { margin: 0 0 5px; color: #ffc4b7; font-size: 0.76rem; font-weight: 750; letter-spacing: 0.1em; text-transform: uppercase; }
.home-welcome-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.home-welcome-actions .btn-primary { border-color: #fff; background: #fff; color: #65013e; }
.home-welcome-actions .btn-outline-secondary { border-color: rgb(255 255 255 / 35%); color: #fff; }
.home-welcome-actions .btn-outline-secondary:hover { border-color: #fff; background: rgb(255 255 255 / 12%); color: #fff; }

.home-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.home-summary-card {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
  padding: 17px 18px;
  border: 1px solid #d9d7d3;
  border-radius: 10px;
  background: #fff;
  color: #252026;
  text-decoration: none;
  box-shadow: 0 1px 3px rgb(45 34 40 / 8%);
  transition: transform 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.home-summary-card:hover { border-color: #c6a8b9; color: #252026; transform: translateY(-1px); box-shadow: 0 8px 20px rgb(45 34 40 / 10%); }
.home-summary-icon { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border-radius: 10px; background: #f5edf2; color: #65013e; font-size: 1.1rem; font-weight: 800; }
.home-summary-card.is-priority .home-summary-icon { background: #ffebe6; color: #c43f2a; }
.home-summary-card.is-leave .home-summary-icon { background: #e8f5f1; color: #19705b; }
.home-summary-card.is-onboarding .home-summary-icon { background: #fff0e8; color: #d9573d; }
.home-summary-card > span:last-child { display: grid; min-width: 0; }
.home-summary-card strong { color: #201b20; font-size: 1.55rem; line-height: 1; }
.home-summary-card small { margin-top: 4px; color: #3d343a; font-size: 0.86rem; font-weight: 720; }
.home-summary-card em { margin-top: 2px; overflow: hidden; color: #776d74; font-size: 0.75rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }

.home-widget-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; align-items: start; }
.home-widget { min-width: 0; padding: 20px; border: 1px solid #d9d7d3; border-radius: 10px; background: #fff; box-shadow: 0 1px 3px rgb(45 34 40 / 8%); }
.home-priority-widget { grid-column: span 8; }
.home-launchpad-widget { grid-column: span 4; }
.home-onboarding-widget, .home-calendar-widget { grid-column: span 6; }
.home-moments-widget, .home-workforce-widget, .home-activity-widget, .home-system-widget { grid-column: span 4; }
.is-employee-home .home-priority-widget { grid-column: span 8; }
.is-employee-home .home-launchpad-widget { grid-column: span 4; }

.home-widget-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.home-widget-header h2 { margin: 0; color: #201b20; font-size: 1.06rem; font-weight: 750; }
.home-widget-header > a { color: #8f1f56; font-size: 0.78rem; font-weight: 700; text-decoration: none; }
.home-widget-header > a:hover { text-decoration: underline; }
.home-widget-kicker { margin: 0 0 2px; color: #d9573d; font-size: 0.68rem; font-weight: 800; letter-spacing: 0.09em; text-transform: uppercase; }
.home-live-pill { padding: 3px 8px; border-radius: 999px; background: #e7f5ef; color: #19705b; font-size: 0.68rem; font-weight: 750; }

.home-task-list { display: grid; }
.home-task-list > a { display: grid; grid-template-columns: 9px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 57px; padding: 10px 2px; border-top: 1px solid #eeeae7; color: #2f292e; text-decoration: none; }
.home-task-list > a:first-child { border-top: 0; }
.home-task-list > a:hover strong { color: #8f1f56; }
.home-task-list > a > span:nth-child(2) { display: grid; min-width: 0; }
.home-task-list strong { font-size: 0.86rem; }
.home-task-list small { margin-top: 2px; overflow: hidden; color: #776d74; font-size: 0.75rem; text-overflow: ellipsis; white-space: nowrap; }
.home-task-list b { display: grid; min-width: 30px; height: 30px; place-items: center; padding: 0 8px; border-radius: 8px; background: #f4f1ef; color: #3d343a; font-size: 0.78rem; }
.home-task-tone { width: 8px; height: 8px; border-radius: 50%; background: #b8b3b6; }
.home-task-tone.is-danger { background: #df4a3a; box-shadow: 0 0 0 4px #ffebe6; }
.home-task-tone.is-warning { background: #e39a2f; box-shadow: 0 0 0 4px #fff4df; }
.home-task-tone.is-info { background: #19705b; box-shadow: 0 0 0 4px #e5f3ee; }

.home-launchpad-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.home-launchpad-grid a { display: flex; min-height: 76px; flex-direction: column; justify-content: space-between; padding: 12px; border: 1px solid #e7e2df; border-radius: 8px; background: #faf9f7; color: #352d33; text-decoration: none; }
.home-launchpad-grid a:hover { border-color: #d8b3c6; background: #fff8fb; color: #7b164a; }
.home-launchpad-grid span { color: #d9573d; font-size: 1.05rem; }
.home-launchpad-grid strong { font-size: 0.78rem; }

.home-onboarding-list, .home-moment-list, .home-date-list, .home-activity-list { display: grid; }
.home-onboarding-list a { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 10px 0; border-top: 1px solid #eeeae7; color: #352d33; text-decoration: none; }
.home-onboarding-list a:first-child, .home-moment-list a:first-child, .home-date-list > a:first-child { border-top: 0; }
.home-person-avatar { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 50%; background: #efe2e9; color: #65013e; font-size: 0.78rem; font-weight: 800; }
.home-person-avatar.is-coral { background: #ffebe5; color: #c43f2a; }
.home-onboarding-copy { display: grid; min-width: 0; }
.home-onboarding-copy strong, .home-moment-list strong { font-size: 0.82rem; }
.home-onboarding-copy small, .home-moment-list small { margin-top: 1px; color: #776d74; font-size: 0.7rem; }
.home-onboarding-list b { color: #65013e; font-size: 0.74rem; }
.home-progress { height: 5px; margin-top: 7px; overflow: hidden; border-radius: 999px; background: #eee8eb; }
.home-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #65013e, #d9573d); }

.home-date-list > a { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 12px; min-height: 54px; padding: 8px 0; border-top: 1px solid #eeeae7; color: #352d33; font-size: 0.78rem; font-weight: 650; text-decoration: none; }
.home-date-list time { display: grid; width: 42px; height: 42px; place-items: center; align-content: center; border-radius: 8px; background: #f5edf2; color: #65013e; line-height: 1; }
.home-date-list time strong { font-size: 1rem; }
.home-date-list time span { margin-top: 2px; font-size: 0.62rem; font-weight: 750; text-transform: uppercase; }
.home-date-list > a:hover > span { color: #8f1f56; }

.home-moment-list a { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 10px; padding: 9px 0; border-top: 1px solid #eeeae7; color: #352d33; text-decoration: none; }
.home-moment-list a > span:last-child { display: grid; }
.home-workforce-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.home-workforce-grid a { display: grid; min-height: 78px; place-content: center; border-radius: 8px; background: #f7f5f3; color: #352d33; text-align: center; text-decoration: none; }
.home-workforce-grid a:hover { background: #f5eaf0; color: #65013e; }
.home-workforce-grid strong { font-size: 1.4rem; line-height: 1; }
.home-workforce-grid span { margin-top: 5px; color: #776d74; font-size: 0.7rem; }

.home-activity-list > div:not(.home-widget-empty) { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 9px; padding: 9px 0; border-top: 1px solid #eeeae7; }
.home-activity-list > div:first-child { border-top: 0; }
.home-activity-dot { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: #19705b; }
.home-activity-list div > span:nth-child(2) { display: grid; min-width: 0; }
.home-activity-list strong { font-size: 0.76rem; }
.home-activity-list small { margin-top: 2px; overflow: hidden; color: #776d74; font-size: 0.68rem; text-overflow: ellipsis; white-space: nowrap; }
.home-activity-list time { grid-column: 2; color: #9a9197; font-size: 0.63rem; }
.home-widget-empty { display: grid; min-height: 110px; place-content: center; color: #675f64; text-align: center; }
.home-widget-empty strong { color: #352d33; font-size: 0.85rem; }
.home-widget-empty span { margin-top: 4px; font-size: 0.74rem; }

@media (max-width: 1199.98px) {
  .home-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-priority-widget, .home-launchpad-widget, .home-onboarding-widget, .home-calendar-widget { grid-column: span 6; }
  .home-moments-widget, .home-workforce-widget, .home-activity-widget { grid-column: span 6; }
  .home-system-widget { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
  .home-welcome-card { align-items: flex-start; flex-direction: column; padding: 22px; }
  .home-welcome-actions { justify-content: flex-start; }
  .home-summary-grid { grid-template-columns: 1fr; }
  .home-widget-grid { grid-template-columns: 1fr; }
  .home-priority-widget, .home-launchpad-widget, .home-onboarding-widget, .home-calendar-widget,
  .home-moments-widget, .home-workforce-widget, .home-activity-widget, .home-system-widget,
  .is-employee-home .home-priority-widget, .is-employee-home .home-launchpad-widget { grid-column: 1; }
}

@media (max-width: 575.98px) {
  .home-dashboard { gap: 14px; }
  .home-welcome-card,
  .home-widget { padding: 18px; }
  .home-launchpad-grid { grid-template-columns: 1fr; }
  .home-section-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .home-task-list small { white-space: normal; }
}

.hazard-camera-field {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px dashed #b9b5b1;
  border-radius: 8px;
  background: #faf9f7;
}

.hazard-camera-field p { margin: -4px 0 0; color: #6b6670; }
.hazard-camera-button { width: fit-content; display: inline-flex; align-items: center; gap: 8px; }
.hazard-camera-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.hazard-photo-preview { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hazard-photo-preview img { width: 96px; height: 72px; object-fit: cover; border: 1px solid #d9d7d3; border-radius: 7px; }
.hazard-photo-preview span { min-width: 0; overflow-wrap: anywhere; color: #514b52; }
.hazard-photo-section { margin-top: 18px; padding-top: 16px; border-top: 1px solid #e5e2df; }
.hazard-photo-section h3 { margin-bottom: 10px; font-size: 0.95rem; }
.hazard-photo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.hazard-photo-gallery a { display: block; overflow: hidden; border: 1px solid #d9d7d3; border-radius: 8px; background: #f4f2ef; }
.hazard-photo-gallery img { display: block; width: 100%; height: 150px; object-fit: cover; transition: transform 150ms ease; }
.hazard-photo-gallery a:hover img,
.hazard-photo-gallery a:focus img { transform: scale(1.025); }

/* Records centre */
.records-centre { display: grid; gap: 20px; color: #28232a; }
.records-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 390px); gap: 36px; align-items: center; min-height: 270px; padding: 34px 38px; overflow: hidden; border: 1px solid #d9d6d3; border-radius: 12px; background: linear-gradient(120deg, #fff 0%, #fdf7f4 62%, #f5e8ed 100%); box-shadow: 0 2px 8px rgb(45 34 40 / 7%); }
.records-hero::after { position: absolute; right: -90px; bottom: -155px; width: 330px; height: 330px; border: 70px solid rgb(101 1 62 / 5%); border-radius: 50%; content: ""; pointer-events: none; }
.records-hero-copy { position: relative; z-index: 1; max-width: 720px; }
.records-eyebrow { margin: 0 0 7px; color: #e4523b; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.records-hero h1 { max-width: 700px; margin: 0; color: #171624; font-size: clamp(2rem, 3.2vw, 3.35rem); font-weight: 720; letter-spacing: -0.04em; line-height: 1.04; }
.records-hero-copy > p:not(.records-eyebrow) { max-width: 620px; margin: 16px 0 0; color: #6c6570; font-size: 1rem; line-height: 1.6; }
.records-hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.records-health { position: relative; z-index: 1; display: flex; align-items: center; gap: 20px; padding: 20px; border: 1px solid rgb(101 1 62 / 10%); border-radius: 10px; background: rgb(255 255 255 / 72%); backdrop-filter: blur(8px); }
.records-health-ring { position: relative; display: grid; flex: 0 0 118px; width: 118px; height: 118px; place-items: center; border-radius: 50%; background: conic-gradient(#198e75 calc(var(--records-health) * 1%), #ece8e7 0); }
.records-health-ring::before { position: absolute; width: 88px; height: 88px; border-radius: 50%; background: #fff; content: ""; }
.records-health-ring > div { position: relative; z-index: 1; display: grid; text-align: center; }
.records-health-ring strong { color: #171624; font-size: 1.65rem; line-height: 1; }
.records-health-ring span { margin-top: 4px; color: #777078; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; }
.records-health h2 { margin: 0; font-size: 1rem; font-weight: 750; }
.records-health p { margin: 5px 0 0; color: #716a72; font-size: 0.8rem; line-height: 1.45; }
.records-alert { margin: 0; }

.records-snapshot { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.records-stat { display: flex; gap: 14px; align-items: center; min-width: 0; padding: 17px 18px; border: 1px solid #dcd9d6; border-radius: 9px; background: #fff; box-shadow: 0 1px 3px rgb(45 34 40 / 6%); color: inherit; text-decoration: none; transition: border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease; }
.records-stat:hover, .records-stat:focus { border-color: #b9acae; box-shadow: 0 5px 14px rgb(45 34 40 / 10%); color: inherit; transform: translateY(-1px); }
.records-stat-attention { border-color: #f0c8c1; background: #fffaf8; }
.records-stat-icon { display: grid; flex: 0 0 42px; width: 42px; height: 42px; place-items: center; border-radius: 9px; background: #ffe8e3; color: #db4935; font-size: 1.25rem; font-weight: 800; }
.records-stat-icon svg, .records-library-icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.records-stat-icon-missing { background: #f3e8ef; color: #65013e; }
.records-stat-icon-due { background: #fff3d7; color: #a86404; }
.records-stat-icon-current { background: #e3f4ee; color: #16816b; }
.records-stat > span:last-child { display: grid; min-width: 0; }
.records-stat small { color: #756e76; font-size: 0.69rem; font-style: normal; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.records-stat strong { margin: 1px 0 3px; color: #1a1820; font-size: 1.65rem; line-height: 1; }
.records-stat em { overflow: hidden; color: #827b82; font-size: 0.71rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }

.records-library, .records-queue { padding: 23px; border: 1px solid #d9d6d3; border-radius: 10px; background: #fff; box-shadow: 0 1px 4px rgb(45 34 40 / 7%); }
.records-section-heading, .records-queue-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.records-section-heading h2, .records-queue-header h2 { margin: 0; color: #191721; font-size: 1.22rem; font-weight: 750; }
.records-section-heading > span { color: #827b82; font-size: 0.77rem; }
.records-library-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.records-library-card { position: relative; display: grid; grid-template-columns: auto 1fr auto; grid-template-rows: 1fr auto; gap: 11px 12px; min-height: 150px; padding: 17px; border: 1px solid #e2dedb; border-radius: 8px; background: #fdfcfb; color: inherit; text-decoration: none; transition: background 150ms ease, border-color 150ms ease, transform 150ms ease; }
.records-library-card:hover, .records-library-card:focus { border-color: #d5b8c8; background: #fff8fc; color: inherit; transform: translateY(-2px); }
.records-library-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 8px; background: #f2e7ee; color: #65013e; }
.records-library-icon-training { background: #e7f0fa; color: #286696; }
.records-library-icon-work-rights { background: #e4f3ed; color: #25745f; }
.records-library-icon-policies { background: #fff0df; color: #a15c16; }
.records-library-icon-contracts { background: #ede8fa; color: #6650a0; }
.records-library-copy { grid-column: 1 / -1; display: grid; align-content: start; }
.records-library-copy strong { font-size: 0.9rem; }
.records-library-copy small { margin-top: 4px; color: #7b747b; font-size: 0.72rem; line-height: 1.4; }
.records-library-count { display: grid; align-self: end; }
.records-library-count strong { color: #262128; font-size: 1.15rem; line-height: 1; }
.records-library-count small { margin-top: 3px; color: #8b838a; font-size: 0.65rem; }
.records-library-arrow { align-self: end; color: #8f858b; font-size: 1.15rem; }

.records-queue { padding-bottom: 8px; }
.records-queue-header { align-items: center; margin-bottom: 16px; }
.records-queue-header > div:first-child > p:last-child { margin: 4px 0 0; color: #817981; font-size: 0.76rem; }
.records-filter { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.records-filter .btn { padding: 0.43rem 0.7rem; border-color: #d8d3d0; background: #fff; color: #5f585e; font-size: 0.73rem; }
.records-filter .btn:hover { border-color: #bdaeb5; background: #faf7f8; }
.records-filter .btn-primary { border-color: #65013e; background: #65013e; color: #fff; }
.records-filter .btn span { display: inline-grid; min-width: 19px; height: 19px; margin-left: 4px; padding: 0 5px; place-items: center; border-radius: 10px; background: rgb(255 255 255 / 18%); font-size: 0.64rem; }
.records-filter .btn-outline-secondary span { background: #efedeb; color: #675f65; }
.records-table { margin: 0; }
.records-table thead th { padding: 10px 12px; border-top: 1px solid #ebe8e5; border-bottom: 1px solid #e0ddda; background: #faf9f7; color: #817981; font-size: 0.67rem; font-weight: 800; letter-spacing: 0.055em; text-transform: uppercase; }
.records-table tbody td { padding: 13px 12px; border-bottom-color: #ece9e7; }
.records-row { position: relative; }
.records-row::after { position: absolute; top: 11px; bottom: 11px; left: 0; width: 3px; border-radius: 0 3px 3px 0; background: #53a58d; content: ""; }
.records-row-overdue::after { background: #eb5c48; }
.records-row-expiring::after { background: #e6a21a; }
.records-person { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.records-person:hover strong { color: #65013e; text-decoration: underline; }
.records-avatar { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #eee5ea; color: #65013e; font-size: 0.65rem; font-weight: 800; }
.records-person > span:last-child, .records-item, .records-due { display: grid; }
.records-person strong, .records-item strong, .records-due strong { color: #312b31; font-size: 0.78rem; font-weight: 700; }
.records-person small, .records-item span, .records-due span { margin-top: 2px; color: #8a8288; font-size: 0.68rem; }
.records-status { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 12px; background: #e7f3ef; color: #1a765f; font-size: 0.68rem; font-weight: 750; }
.records-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.records-status-overdue { background: #fff0ed; color: #c54331; }
.records-status-expiring { background: #fff4dc; color: #9a6506; }
.records-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; }
.records-actions form { display: inline-flex; }
.records-more { display: inline-grid; width: 31px; height: 31px; place-items: center; border: 1px solid #d9d4d1; border-radius: 6px; color: #6f676d; font-weight: 800; letter-spacing: 0.04em; text-decoration: none; }
.records-more:hover { border-color: #b9aab1; background: #faf6f8; color: #65013e; }
.records-empty { display: grid; min-height: 250px; padding: 38px; place-items: center; align-content: center; text-align: center; }
.records-empty > span { display: grid; width: 54px; height: 54px; margin-bottom: 12px; place-items: center; border-radius: 50%; background: #e4f4ee; color: #16816b; font-size: 1.35rem; font-weight: 800; }
.records-empty h3 { margin: 0; font-size: 1rem; }
.records-empty p { max-width: 430px; margin: 7px 0 0; color: #807980; font-size: 0.78rem; }

@media (max-width: 1399.98px) {
  .records-library-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .records-snapshot { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 991.98px) {
  .records-hero { grid-template-columns: 1fr; padding: 28px; }
  .records-health { max-width: 420px; }
  .records-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .records-queue-header { align-items: flex-start; flex-direction: column; }
  .records-filter { justify-content: flex-start; }
}

@media (max-width: 575.98px) {
  .records-centre { gap: 14px; }
  .records-hero { padding: 22px 18px; }
  .records-health { align-items: flex-start; flex-direction: column; }
  .records-snapshot, .records-library-grid { grid-template-columns: 1fr; }
  .records-library, .records-queue { padding: 18px 14px; }
  .records-section-heading { align-items: flex-start; flex-direction: column; }
}

.review-back-link {
  color: #6b6470;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.review-back-link:hover { color: var(--bs-primary); }

.review-setup-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 360px);
  align-items: start;
  gap: 18px;
}

.review-setup-main { padding: 0; overflow: hidden; }
.review-setup-section { padding: 24px 26px; border-bottom: 1px solid #e7e2e5; }

.review-section-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 19px;
}

.review-section-heading > span {
  display: grid;
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  place-items: center;
  border-radius: 50%;
  background: #7b0045;
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
}

.review-section-heading h2 { margin: 1px 0 2px; color: #172033; font-size: 1rem; }
.review-section-heading p { margin: 0; color: #756c72; font-size: 0.79rem; }
.review-template-field { max-width: 100%; }

.review-create-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 18px 26px;
  background: #faf8f9;
}

.review-setup-aside {
  display: grid;
  gap: 14px;
  position: sticky;
  top: calc(var(--app-header-height, 72px) + 18px);
}

.review-setup-aside .work-panel { padding: 22px; }
.review-setup-aside h2 { margin: 4px 0 18px; color: #172033; font-size: 1.08rem; }

.review-setup-kicker {
  color: #a62c63;
  font-size: 0.67rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.review-next-steps {
  display: grid;
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.review-next-steps li { display: flex; gap: 11px; }
.review-next-steps li > span {
  display: grid;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  place-items: center;
  border: 1px solid #d7cbd2;
  border-radius: 50%;
  background: #fbf6f9;
  color: #7b0045;
  font-size: 0.67rem;
  font-weight: 800;
}

.review-next-steps strong, .review-next-steps small { display: block; }
.review-next-steps strong { color: #29222a; font-size: 0.8rem; }
.review-next-steps small { margin-top: 2px; color: #786f75; font-size: 0.7rem; line-height: 1.35; }

.review-setup-note {
  display: grid;
  gap: 3px;
  padding: 15px 17px;
  border: 1px solid #c8e7dc;
  border-radius: 10px;
  background: #effaf6;
  color: #1d654f;
}

.review-setup-note strong { font-size: 0.78rem; }
.review-setup-note span { font-size: 0.7rem; line-height: 1.4; }

@media (max-width: 991.98px) {
  .review-setup-layout { grid-template-columns: 1fr; }
  .review-setup-aside { position: static; grid-row: 1; }
}

@media (max-width: 575.98px) {
  .review-setup-section, .review-create-actions { padding: 18px; }
  .review-create-actions { align-items: stretch; flex-direction: column-reverse; }
  .review-create-actions .btn { width: 100%; }
}

.global-search-page { max-width: 1180px; margin: 0 auto; }
.global-search-heading { margin-bottom: 22px; }
.global-search-form {
  padding: 22px;
  background: #fff;
  border: 1px solid #d9d7d3;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgb(45 34 40 / 9%);
}
.global-search-form .input-group-text { background: #fff; }
.global-search-form .input-group-text svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.global-search-summary { display: flex; gap: 6px; margin: 24px 2px 14px; color: #625961; }
.global-search-summary strong { color: #191522; }
.global-search-sections { display: grid; gap: 16px; }
.global-search-section {
  overflow: hidden;
  background: #fff;
  border: 1px solid #d9d7d3;
  border-radius: 10px;
  box-shadow: 0 1px 3px rgb(45 34 40 / 9%);
}
.global-search-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 17px 20px; background: #faf9f7; border-bottom: 1px solid #e7e4e1; }
.global-search-section-heading h2 { margin: 0; font-size: 1.05rem; }
.global-search-section-heading p { margin: 3px 0 0; color: #746b72; font-size: 0.84rem; }
.global-search-results { display: grid; }
.global-search-result { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 13px; min-height: 68px; padding: 11px 20px; color: #231c22; text-decoration: none; border-bottom: 1px solid #eeece9; }
.global-search-result:last-child { border-bottom: 0; }
.global-search-result:hover,
.global-search-result:focus { background: #fff7f4; color: #7b0750; }
.global-search-result-mark { display: grid; width: 36px; height: 36px; place-items: center; color: #fff; background: #65013e; border-radius: 8px; font-size: 0.85rem; font-weight: 750; }
.global-search-result strong,
.global-search-result small { display: block; }
.global-search-result small { margin-top: 3px; color: #756d73; font-size: 0.82rem; }
.global-search-result-arrow { color: #a29a9f; font-size: 1.2rem; }
.global-search-empty { margin-top: 24px; padding: 48px 24px; text-align: center; background: #fff; border: 1px solid #d9d7d3; border-radius: 10px; }
.global-search-empty h2 { font-size: 1.15rem; }
.global-search-empty p { margin-bottom: 0; color: #756d73; }

.starter-invite-page { max-width: 1120px; margin: 0 auto; }
.starter-invite-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr); gap: 20px; align-items: start; }
.starter-invite-card { padding: 26px; }
.starter-journey-card { padding: 26px; color: #fff; background: linear-gradient(145deg, #53002f, #7b0750); border-radius: 14px; box-shadow: 0 8px 26px rgb(60 4 39 / 22%); }
.starter-journey-card .eyebrow { color: #ffb39f; }
.starter-journey-card ol { display: grid; gap: 20px; margin: 22px 0 0; padding: 0; list-style: none; }
.starter-journey-card li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; }
.starter-journey-card li > span { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid rgb(255 255 255 / 45%); border-radius: 50%; font-weight: 750; }
.starter-journey-card strong,
.starter-journey-card small { display: block; }
.starter-journey-card small { margin-top: 3px; color: rgb(255 255 255 / 72%); line-height: 1.4; }

.onboarding-journey { max-width: 1180px; margin: 0 auto; padding-bottom: 40px; }
.onboarding-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 20px; padding: 28px 32px; color: #fff; background: linear-gradient(120deg, #53002f, #8d0c5b 65%, #ff5c35); border-radius: 16px; box-shadow: 0 9px 28px rgb(75 2 44 / 20%); }
.onboarding-hero .eyebrow { color: #ffc3b2; }
.onboarding-hero h1 { margin: 4px 0 6px; }
.onboarding-hero p:last-child { max-width: 650px; margin: 0; color: rgb(255 255 255 / 82%); }
.onboarding-progress-ring { display: grid; width: 108px; height: 108px; flex: 0 0 auto; place-content: center; text-align: center; border-radius: 50%; background: radial-gradient(circle closest-side, #65013e 78%, transparent 80% 99%), conic-gradient(#ffb39f calc(var(--progress) * 1%), rgb(255 255 255 / 18%) 0); }
.onboarding-progress-ring strong { font-size: 1.45rem; }
.onboarding-progress-ring span { font-size: 0.72rem; color: rgb(255 255 255 / 75%); }
.onboarding-stepper { display: flex; gap: 5px; margin-bottom: 18px; padding: 15px; overflow-x: auto; background: #fff; border: 1px solid #d9d7d3; border-radius: 12px; box-shadow: 0 1px 3px rgb(45 34 40 / 9%); }
.onboarding-step { display: grid; min-width: 78px; flex: 1 0 78px; justify-items: center; gap: 7px; padding: 6px; color: #82777f; text-align: center; text-decoration: none; }
.onboarding-step > span { display: grid; width: 30px; height: 30px; place-items: center; border: 2px solid #d7d0d4; border-radius: 50%; background: #fff; font-size: 0.78rem; font-weight: 800; }
.onboarding-step small { max-width: 98px; font-size: 0.69rem; line-height: 1.25; }
.onboarding-step.complete > span { border-color: #198754; background: #198754; color: #fff; }
.onboarding-step.active { color: #65013e; font-weight: 700; }
.onboarding-step.active > span { border-color: #ff5c35; box-shadow: 0 0 0 4px #fff0eb; }
.onboarding-step-card { padding: 28px 32px; background: #fff; border: 1px solid #d9d7d3; border-radius: 14px; box-shadow: 0 2px 7px rgb(45 34 40 / 10%); }
.onboarding-step-heading { display: flex; align-items: start; justify-content: space-between; gap: 20px; }
.onboarding-step-heading p { margin: 0 0 3px; color: #ff5c35; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.onboarding-step-heading h2 { margin: 0; }
.onboarding-guidance { max-width: 760px; margin: 12px 0 24px; color: #6f656c; }
.onboarding-fieldset { max-width: 960px; margin: 0; padding: 0; border: 0; }
.onboarding-fieldset legend { margin-bottom: 18px; font-size: 1.05rem; font-weight: 750; }
.onboarding-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.onboarding-form-grid .field-span-2 { grid-column: 1 / -1; }
.onboarding-form-grid .form-label { margin-bottom: 7px; font-weight: 650; }
.onboarding-form-grid .form-control,
.onboarding-form-grid .form-select { min-height: 46px; }
.onboarding-form-grid textarea.form-control { min-height: auto; }
.optional-label { color: #756b72; font-size: 0.82em; font-weight: 500; }
.onboarding-confirm-check { margin: 2px 0 0 24px; padding: 16px 18px 16px 42px; border: 1px solid #ded8e8; border-radius: 10px; background: #faf8ff; }
.onboarding-security-note { margin-bottom: 20px; padding: 12px 14px; border-left: 3px solid #6542c7; border-radius: 6px; background: #f7f4ff; color: #514856; font-size: 0.9rem; }
.onboarding-check-list { display: grid; gap: 14px; max-width: 800px; }
.onboarding-check-list .form-check { padding: 15px 18px 15px 42px; border: 1px solid #e0dce3; border-radius: 10px; background: #fbfafc; }
.onboarding-encryption-caption { margin-top: 18px; }
.onboarding-review-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; }
.onboarding-review-fields > div { padding: 12px 16px; border-bottom: 1px solid #ebe7ea; }
.onboarding-review-fields dt { margin-bottom: 4px; color: #6f656c; font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; }
.onboarding-review-fields dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.onboarding-privacy-copy,
.onboarding-sensitive-note { max-width: 800px; margin-bottom: 20px; padding: 20px; background: #fff7f4; border: 1px solid #ffd3c5; border-radius: 10px; }
.onboarding-privacy-copy h3 { font-size: 1rem; }
.onboarding-privacy-copy p { margin-bottom: 0; color: #665b62; }
.onboarding-review-list { display: grid; max-width: 800px; margin-bottom: 24px; border: 1px solid #e1dddf; border-radius: 10px; }
.onboarding-review-list div { display: flex; justify-content: space-between; gap: 20px; padding: 12px 15px; border-bottom: 1px solid #ece9ea; }
.onboarding-review-list div:last-child { border-bottom: 0; }
.onboarding-review-list strong { color: #65013e; font-size: 0.8rem; }
.onboarding-admin-response { max-width: 800px; margin-bottom: 20px; padding: 18px 20px; border: 1px solid #ded8dc; border-radius: 10px; background: #faf9f8; }
.onboarding-admin-response > span { display: block; margin-bottom: 8px; color: #6f656c; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.onboarding-admin-response p { margin: 0; white-space: pre-wrap; }
.onboarding-review-form { max-width: 800px; margin-top: 20px; padding-top: 20px; border-top: 1px solid #e7e2e5; }
.onboarding-approval-summary { max-width: 800px; padding: 18px 20px; border: 1px solid #ead5dd; border-radius: 10px; background: #fff7fa; }
.onboarding-approval-summary.ready { border-color: #a9dfc4; background: #f0fbf5; }
.onboarding-approval-summary strong { display: block; margin-bottom: 4px; }
.onboarding-account-result { max-width: 820px; }
.onboarding-account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.onboarding-account-grid > div { padding: 22px; border: 1px solid #e2dce0; border-radius: 12px; background: #fff; }
.onboarding-account-grid h3 { font-size: 1rem; }
.onboarding-account-grid p { color: #6f656c; }

@media (max-width: 575.98px) {
  .global-search-form { padding: 16px; }
  .global-search-result { padding: 10px 14px; }
  .onboarding-hero { align-items: flex-start; padding: 22px; }
  .onboarding-progress-ring { width: 82px; height: 82px; }
  .onboarding-step-card { padding: 22px 18px; }
  .onboarding-form-grid,
  .onboarding-review-fields { grid-template-columns: 1fr; }
  .onboarding-form-grid .field-span-2 { grid-column: auto; }
  .onboarding-account-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .starter-invite-grid { grid-template-columns: 1fr; }
}

.work-panel {
  padding: 20px;
}

.operations-dashboard {
  --operations-action-bg: #fff;
}

.dashboard-action-section,
.dashboard-calendar-panel {
  padding: 16px;
  border: 1px solid var(--podium-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--podium-shadow);
}

.dashboard-action-section .panel-header p,
.dashboard-calendar-header p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 0.86rem;
}

.dashboard-action-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(235px, 300px));
  gap: 8px;
  justify-content: start;
}

.dashboard-action-grid .metric-card {
  background: #fff;
  box-shadow: none;
}

.dashboard-calendar-header {
  align-items: center;
}

.dashboard-calendar-nav {
  display: flex;
  align-items: center;
  gap: 10px;
}

.dashboard-calendar-nav strong {
  min-width: 130px;
  color: #0f172a;
  text-align: center;
}

.dashboard-calendar-weekdays,
.dashboard-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.dashboard-calendar-weekdays span {
  padding: 0 8px 8px;
  color: #64748b;
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.dashboard-calendar-grid {
  gap: 6px;
}

.dashboard-calendar-day {
  min-width: 0;
  min-height: 94px;
  padding: 8px;
  overflow: hidden;
  border: 1px solid #dbe3ec;
  border-radius: 12px;
  background: #fff;
}

.dashboard-calendar-day.is-outside {
  background: #f8fafc;
  opacity: 0.58;
}

.dashboard-calendar-day.is-today {
  border-color: var(--podium-primary);
  box-shadow: inset 0 0 0 1px var(--podium-primary);
}

.dashboard-calendar-date {
  display: block;
  margin-bottom: 6px;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 750;
}

.dashboard-calendar-event {
  display: block;
  margin-top: 4px;
  padding: 4px 6px;
  overflow: hidden;
  border-radius: 6px;
  color: #1559ad;
  background: #dceafe;
  font-size: 0.68rem;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-calendar-event.is-warning { color: #8a5a00; background: #fff0bf; }
.dashboard-calendar-event.is-danger { color: #b4233c; background: #ffe0e5; }
.dashboard-calendar-event.is-success { color: #08795b; background: #d8f4e9; }

.dashboard-calendar-more {
  display: block;
  margin-top: 5px;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 700;
}

.dashboard-upcoming-list {
  margin-top: 12px;
  border-top: 1px solid var(--podium-border);
}

.dashboard-upcoming-list a {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 12px;
  padding: 11px 8px;
  border-bottom: 1px solid var(--podium-border);
  color: #0f172a;
  text-decoration: none;
}

.dashboard-upcoming-list time {
  color: #526070;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

@media (max-width: 991.98px) {
  .dashboard-calendar-panel { overflow-x: auto; }
  .dashboard-calendar-weekdays,
  .dashboard-calendar-grid { min-width: 760px; }
}

@media (max-width: 575.98px) {
  .dashboard-action-grid { grid-template-columns: 1fr; }
  .dashboard-calendar-header { align-items: flex-start; gap: 12px; }
}

.operations-layout {
  display: grid;
  grid-template-columns: minmax(230px, 280px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}

.persistent-section-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

.persistent-section-layout.without-section-panel {
  grid-template-columns: minmax(0, 1fr);
}

.persistent-section-content {
  min-width: 0;
}

.operations-side-panel {
  display: flex;
  position: sticky;
  top: 88px;
  flex-direction: column;
  gap: 14px;
}

.operations-side-nav,
.operations-side-summary {
  border: 1px solid var(--podium-border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--podium-shadow);
}

.operations-side-summary p {
  margin: 0 0 8px;
  color: var(--podium-primary);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.operations-side-nav {
  overflow: hidden;
  padding: 8px 0;
}

.operations-side-nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border-bottom: 1px solid #edf2f7;
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 650;
  text-decoration: none;
}

.operations-side-nav a:last-child {
  border-bottom: 0;
}

.operations-side-nav a:hover,
.operations-side-nav a:focus,
.operations-side-nav a.active {
  background: #f6faff;
  color: var(--podium-primary);
}

.operations-side-nav a span {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #cbd8e5;
}

.operations-side-nav a.active span {
  background: var(--podium-primary-gradient);
}

.operations-register-filters {
  flex-wrap: wrap;
}

.operations-side-summary {
  padding: 16px;
}

.operations-side-summary div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 0;
  color: #0f172a;
  font-size: 0.86rem;
}

.operations-main {
  min-width: 0;
}

.operations-dashboard .page-heading {
  align-items: center;
  margin-bottom: 22px;
}

.operations-dashboard .page-heading p {
  letter-spacing: 0.08em;
}

.operations-page-summary {
  display: block;
  margin-top: 4px;
  color: #526070;
  font-size: 0.92rem;
}

.operations-dashboard .operations-metric-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(235px, 300px));
  gap: 8px;
  justify-content: start;
  margin: 12px 0 0;
}

.operations-dashboard .work-panel {
  border-radius: 16px;
  box-shadow: var(--podium-shadow);
}

.operations-action-band {
  margin-bottom: 18px;
}

.operations-action-band .panel-header p,
.operations-dashboard .panel-header p {
  margin: 4px 0 0;
  color: #526070;
  font-size: 0.86rem;
}

.operations-metric-card {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  min-height: 78px;
  padding: 12px 14px;
  background: var(--operations-action-bg);
}

.operations-metric-card .metric-value {
  display: inline-flex;
  flex: 0 0 46px;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  margin: 0;
  border: 1px solid #dfe8f1;
  border-radius: 14px;
  background: #fff;
  color: #0f172a;
  font-size: 1.45rem;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 70%);
}

.operations-metric-copy {
  min-width: 0;
}

.operations-metric-card .metric-label {
  max-width: none;
  color: #0f172a;
  font-size: 0.9rem;
  letter-spacing: 0;
  text-transform: none;
}

.operations-metric-card .metric-note {
  display: block;
  margin-top: 2px;
  color: #526070;
  font-size: 0.82rem;
  line-height: 1.25;
}

.operations-dashboard .list-group-item {
  margin: 10px 0;
  padding: 12px 14px !important;
  border: 1px solid #e4ebf2;
  border-radius: 12px;
  background: #fff;
}

.operations-dashboard .list-group-flush > .list-group-item {
  border-width: 1px;
}

.operations-quiet-state {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 14px;
  padding: 16px 18px;
  border: 1px solid #e4ebf2;
  border-radius: 14px;
  background: var(--podium-surface-soft);
  color: #526070;
}

.operations-quiet-state strong {
  color: #0f172a;
}

.operations-work-list,
.operations-status-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 14px;
}

.operations-work-row,
.operations-status-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 14px;
  border: 1px solid #e4ebf2;
  border-radius: 14px;
  background: #fff;
  color: #0f172a;
  text-decoration: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.operations-work-row:hover,
.operations-work-row:focus,
.operations-status-row:hover,
.operations-status-row:focus {
  border-color: rgb(8 151 154 / 42%);
  box-shadow: 0 8px 18px rgb(15 69 110 / 7%);
  color: #0f172a;
  transform: translateY(-1px);
}

.operations-work-row strong,
.operations-status-row strong {
  display: block;
  margin-bottom: 3px;
  font-size: 0.92rem;
  line-height: 1.25;
}

.operations-work-row small,
.operations-status-row small {
  display: block;
  color: #526070;
  font-size: 0.78rem;
  line-height: 1.35;
}

.operations-work-badges {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.action-centre-filters {
  display: flex;
  gap: 8px;
  margin: 4px 0 18px;
  padding: 12px 0;
  overflow-x: auto;
  border-bottom: 1px solid var(--podium-border);
}

.action-centre-filters a {
  display: inline-flex;
  align-items: center;
  min-width: max-content;
  gap: 8px;
  padding: 8px 11px;
  border: 1px solid #d7d2d5;
  border-radius: 8px;
  background: #fff;
  color: #51474e;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.action-centre-filters a:hover,
.action-centre-filters a:focus,
.action-centre-filters a.active {
  border-color: #ff8a6e;
  background: #fff3ee;
  color: #9f2e20;
}

.action-centre-filters strong {
  display: grid;
  min-width: 22px;
  height: 22px;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  background: #f0ecee;
  font-size: 0.72rem;
}

.action-complete-control { position: relative; }
.action-complete-control > summary { list-style: none; }
.action-complete-control > summary::-webkit-details-marker { display: none; }
.action-complete-control[open] > form {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  right: 0;
  width: min(340px, 80vw);
  padding: 15px;
  border: 1px solid #d8d2d5;
  border-radius: 10px;
  background: #fff;
  text-align: left;
  box-shadow: 0 12px 30px rgb(45 20 35 / 20%);
}

@media (max-width: 991.98px) {
  .operations-layout {
    grid-template-columns: 1fr;
  }

  .persistent-section-layout {
    grid-template-columns: 1fr;
  }

  .operations-side-panel,
  .persistent-section-panel {
    position: static;
    max-height: none;
    overflow: visible;
  }

  .operations-side-nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .workspace-side-nav {
    display: block;
  }

  .operations-side-nav a {
    border-right: 1px solid #edf2f7;
  }
}

@media (max-width: 575.98px) {
  .operations-dashboard .page-heading {
    align-items: flex-start;
  }

  .dashboard-action-grid,
  .operations-dashboard .operations-metric-grid {
    grid-template-columns: 1fr;
  }

  .operations-side-nav {
    grid-template-columns: 1fr;
  }

  .operations-work-row,
  .operations-status-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .operations-work-badges {
    justify-content: flex-start;
  }
}

.panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e5eaf0;
}

.panel-header h2 {
  margin: 0;
  font-size: 1rem;
  font-weight: 650;
}

.status-list > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid #eef2f6;
}

.status-list > div:last-child {
  border-bottom: 0;
}

.status-list dt {
  color: #526070;
  font-weight: 600;
}

.status-list dd {
  margin: 0;
}

.app-footer {
  background: #fff;
}

.app-table {
  margin-bottom: 0;
}

.app-table thead th {
  color: #526070;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  border-bottom-color: #dce3ea;
}

.recent-audit-table .audit-when {
  white-space: nowrap;
}

.recent-audit-table .audit-event-badge,
.recent-audit-table .audit-actor,
.recent-audit-table .audit-summary {
  overflow-wrap: anywhere;
}

.recent-audit-table .audit-event-badge {
  max-width: 100%;
  white-space: normal;
  text-align: left;
}

.asset-qr-code {
  width: 180px;
  height: 180px;
  border: 1px solid #dce3ea;
  border-radius: 6px;
  background: #fff;
}

.app-form {
  max-width: 980px;
}

.policy-editor-form {
  max-width: none;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.form-grid-span {
  grid-column: 1 / -1;
}

.form-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 22px;
}

.form-section-title {
  margin: 26px 0 14px;
  padding-top: 18px;
  border-top: 1px solid #e5eaf0;
  font-size: 1rem;
  font-weight: 650;
}

.form-section-title:first-of-type {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.detail-list {
  margin: 0;
}

.detail-list > div {
  display: grid;
  grid-template-columns: minmax(140px, 0.35fr) 1fr;
  gap: 18px;
  padding: 12px 0;
  border-bottom: 1px solid #eef2f6;
}

.detail-list > div:last-child {
  border-bottom: 0;
}

.detail-list dt {
  color: #526070;
  font-weight: 600;
}

.detail-list dd {
  margin: 0;
}

.empty-state {
  padding: 34px 16px;
  text-align: center;
}

.empty-state h2 {
  margin-bottom: 6px;
  font-size: 1.1rem;
  font-weight: 650;
}

.empty-state p {
  margin-bottom: 0;
  color: #6b7280;
}

.sensitive-banner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #f1d6a8;
  border-radius: 8px;
  background: #fff8ed;
  color: #5f410f;
}

.sensitive-banner strong {
  font-weight: 700;
}

.sensitive-value {
  font-family: "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;
  letter-spacing: 0;
}

.policy-body {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #e5eaf0;
  border-radius: 8px;
  background: #f9fafb;
  line-height: 1.58;
}

.policy-markdown p:last-child,
.policy-markdown ul:last-child,
.policy-markdown ol:last-child {
  margin-bottom: 0;
}

.policy-markdown h2,
.policy-markdown h3,
.policy-markdown h4 {
  margin: 1.35rem 0 0.55rem;
  line-height: 1.25;
  font-weight: 750;
}

.policy-markdown h2 {
  color: #0f4f8f;
  font-size: 1.28rem;
}

.policy-markdown h3 {
  color: #1f2937;
  font-size: 1.08rem;
}

.policy-markdown h4 {
  color: #334155;
  font-size: 1rem;
}

.policy-markdown ul,
.policy-markdown ol {
  padding-left: 1.4rem;
}

.policy-markdown li {
  margin-bottom: 0.35rem;
}

.policy-markdown blockquote {
  margin: 1rem 0;
  padding: 0.75rem 1rem;
  border-left: 4px solid #b8c7d8;
  background: #fff;
  color: #475569;
}

.policy-markdown hr {
  margin: 1.5rem 0;
  border-color: #d7dde5;
  opacity: 1;
}

.policy-markdown a {
  font-weight: 650;
}

.my-policies-heading > div > p:last-child { max-width: 720px; margin-top: 6px; }
.my-policy-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.my-policy-summary article {
  display: grid;
  min-height: 112px;
  padding: 17px 19px;
  border: 1px solid #dcd8d6;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 3px rgb(45 34 40 / 7%);
}
.my-policy-summary span {
  color: #716970;
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.my-policy-summary strong { margin-top: 5px; color: #2a2328; font-size: 1.75rem; line-height: 1; }
.my-policy-summary small { align-self: end; margin-top: 8px; color: #827a80; font-size: .7rem; }
.my-policy-summary article.is-complete { border-color: #cde3d9; background: #f7fbf9; }
.my-policy-summary article.is-complete strong { color: #237052; }
.my-policy-summary article.is-action { border-color: #ebd5a6; background: #fffaf0; }
.my-policy-summary article.is-action strong { color: #9a6208; }
.my-policy-attention {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  padding: 13px 16px;
  border: 1px solid #ead4a7;
  border-radius: 9px;
  background: #fff9ed;
}
.my-policy-attention > span {
  display: grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #f5b93f;
  color: #4b3407;
  font-weight: 850;
}
.my-policy-attention > div { display: grid; gap: 2px; }
.my-policy-attention strong { color: #4f3a10; font-size: .78rem; }
.my-policy-attention small { color: #78643d; font-size: .7rem; }
.my-policy-list { display: grid; gap: 10px; }
.my-policy-card {
  overflow: hidden;
  border: 1px solid #ddd9d7;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 3px rgb(45 34 40 / 7%);
}
.my-policy-card.needs-action { border-left: 4px solid #e4a62e; }
.my-policy-card.is-acknowledged { border-left: 4px solid #38a276; }
.my-policy-card.is-read-only { border-left: 4px solid #a7a1a5; }
.my-policy-card > summary {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto 92px;
  gap: 12px;
  align-items: center;
  min-height: 76px;
  padding: 12px 15px;
  cursor: pointer;
  list-style: none;
  transition: background 130ms ease;
}
.my-policy-card > summary::-webkit-details-marker { display: none; }
.my-policy-card > summary:hover { background: #fcfafb; }
.my-policy-card > summary:focus-visible { outline: 3px solid rgb(var(--bs-primary-rgb) / 28%); outline-offset: -3px; }
.my-policy-card[open] > summary { border-bottom: 1px solid #e8e4e6; background: #fcfafb; }
.my-policy-status-icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 50%;
  background: #efedef;
  color: #6d656a;
  font-size: .72rem;
  font-weight: 850;
}
.my-policy-card.needs-action .my-policy-status-icon { background: #fff1d5; color: #91600d; }
.my-policy-card.is-acknowledged .my-policy-status-icon { background: #e5f5ee; color: #247052; }
.my-policy-title { display: grid; gap: 4px; min-width: 0; }
.my-policy-title > strong {
  overflow: hidden;
  color: #2c2529;
  font-size: .82rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.my-policy-title > small { color: #7d747a; font-size: .68rem; }
.my-policy-status {
  display: inline-flex;
  padding: 4px 8px;
  border: 1px solid #ddd8db;
  border-radius: 999px;
  background: #f6f4f5;
  color: #6c6369;
  font-size: .62rem;
  font-weight: 750;
  white-space: nowrap;
}
.my-policy-status.is-complete { border-color: #c5e1d6; background: #eaf7f1; color: #21694f; }
.my-policy-status.is-action { border-color: #ead39e; background: #fff4d9; color: #84590d; }
.my-policy-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  min-height: 32px;
  padding: 5px 10px;
  border: 1px solid #cfc9cc;
  border-radius: 6px;
  background: #fff;
  color: #5f565c;
  font-size: .66rem;
  font-weight: 750;
}
.my-policy-toggle::before { content: "Open policy"; }
.my-policy-card[open] .my-policy-toggle::before { content: "Close"; }
.my-policy-content { padding: 18px; }
.my-policy-dates {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0 0 16px;
  border: 1px solid #e5e1e3;
  border-radius: 8px;
  background: #faf9f8;
}
.my-policy-dates > div { display: grid; gap: 3px; padding: 12px 14px; border-right: 1px solid #e5e1e3; }
.my-policy-dates > div:last-child { border-right: 0; }
.my-policy-dates dt { color: #7c7479; font-size: .64rem; font-weight: 750; text-transform: uppercase; }
.my-policy-dates dd { margin: 0; color: #393136; font-size: .75rem; font-weight: 650; }
.my-policy-body { max-width: none; margin: 0; padding: 20px; }
.my-policy-attachments { display: grid; gap: 9px; margin-top: 14px; }
.my-policy-attachments > strong { font-size: .76rem; }
.my-policy-attachments > div { display: flex; flex-wrap: wrap; gap: 7px; }
.my-policy-attachments > div > span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 9px;
  border: 1px solid #ddd9d7;
  border-radius: 7px;
  background: #faf9f8;
  color: #5f575c;
  font-size: .68rem;
}
.my-policy-acknowledge {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid #d9d4d6;
  border-radius: 8px;
  background: #faf8f9;
}
.my-policy-acknowledge > div { display: grid; gap: 3px; }
.my-policy-acknowledge strong { color: #352d32; font-size: .78rem; }
.my-policy-acknowledge small { color: #786f75; font-size: .68rem; }

@media (max-width: 767.98px) {
  .my-policy-summary { grid-template-columns: 1fr; }
  .my-policy-summary article { min-height: 96px; }
  .my-policy-card > summary { grid-template-columns: 32px minmax(0, 1fr) auto; }
  .my-policy-status { grid-column: 2; justify-self: start; }
  .my-policy-toggle { grid-column: 3; grid-row: 1 / span 2; min-width: 72px; }
  .my-policy-dates { grid-template-columns: 1fr; }
  .my-policy-dates > div { border-right: 0; border-bottom: 1px solid #e5e1e3; }
  .my-policy-dates > div:last-child { border-bottom: 0; }
  .my-policy-acknowledge { align-items: stretch; flex-direction: column; }
  .my-policy-acknowledge .btn { width: 100%; }
}

@media (max-width: 479.98px) {
  .my-policy-card > summary { grid-template-columns: 28px minmax(0, 1fr); padding: 12px; }
  .my-policy-status { grid-column: 2; }
  .my-policy-toggle { grid-column: 2; grid-row: auto; justify-self: start; }
  .my-policy-content { padding: 12px; }
  .my-policy-title > small { line-height: 1.45; }
}

.contract-body-preview {
  max-width: 78ch;
  margin: 0 auto;
  color: #1f2937;
  font-size: 1rem;
  line-height: 1.7;
  white-space: pre-wrap;
}

.contract-page-heading {
  align-items: flex-start;
}

.contract-back-link {
  color: #6b6470;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.contract-back-link:hover {
  color: var(--bs-primary);
}

.contract-workflow-panel {
  margin-bottom: 16px;
  padding: 18px 20px;
  border: 1px solid #ded9dc;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 8px rgb(45 34 40 / 6%);
}

.contract-workflow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.contract-workflow-step {
  position: relative;
  display: flex;
  gap: 10px;
  min-width: 0;
  padding-right: 18px;
}

.contract-workflow-step:not(:last-child)::after {
  position: absolute;
  top: 16px;
  right: 5px;
  left: 38px;
  z-index: 0;
  height: 2px;
  background: #e5e0e3;
  content: "";
}

.contract-step-marker {
  position: relative;
  z-index: 1;
  display: grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 2px solid #d5cfd3;
  border-radius: 50%;
  background: #fff;
  color: #766e74;
  font-size: 0.76rem;
  font-weight: 800;
}

.contract-workflow-step > span:last-child {
  position: relative;
  z-index: 1;
  display: grid;
  min-width: 0;
  padding: 1px 5px 0 0;
  background: #fff;
}

.contract-workflow-step strong {
  color: #182033;
  font-size: 0.82rem;
}

.contract-workflow-step small {
  margin-top: 2px;
  color: #827980;
  font-size: 0.69rem;
  line-height: 1.3;
}

.contract-workflow-step.is-complete .contract-step-marker {
  border-color: #2f8e70;
  background: #2f8e70;
  color: #fff;
}

.contract-workflow-step.is-current .contract-step-marker {
  border-color: #7b0045;
  background: #7b0045;
  color: #fff;
}

.contract-workflow-step.is-blocked .contract-step-marker {
  border-color: #df3f4d;
  background: #fff1f2;
  color: #b42332;
}

.contract-legal-note {
  margin: 16px 0 0;
  padding-top: 12px;
  border-top: 1px solid #eee9ec;
  color: #776e74;
  font-size: 0.72rem;
}

.contract-next-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 16px;
  padding: 22px 24px;
  border: 1px solid #d8c7d1;
  border-left: 5px solid #7b0045;
  border-radius: 12px;
  background: linear-gradient(115deg, #fff 0%, #faf5f8 100%);
}

.contract-next-action h2 {
  margin: 3px 0 4px;
  color: #172033;
  font-size: 1.25rem;
}

.contract-next-action p {
  max-width: 760px;
  margin: 0;
  color: #665e65;
}

.contract-eyebrow {
  display: block;
  color: #a62c63;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.contract-primary-action {
  flex: 0 0 auto;
}

.contract-blockers {
  display: grid;
  grid-template-columns: minmax(220px, 0.7fr) 1.3fr;
  gap: 20px;
  margin-bottom: 16px;
  padding: 16px 20px;
  border: 1px solid #f0b8bd;
  border-radius: 10px;
  background: #fff5f5;
  color: #75202a;
}

.contract-blockers div,
.contract-blockers div span {
  display: grid;
}

.contract-blockers div span {
  margin-top: 3px;
  color: #91505a;
  font-size: 0.78rem;
}

.contract-blockers ul {
  margin: 0;
  padding-left: 20px;
}

.contract-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px 24px;
}

.contract-summary-grid div {
  display: grid;
  gap: 2px;
}

.contract-summary-grid span {
  color: #7a7177;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.contract-summary-grid strong {
  color: #172033;
  font-size: 0.94rem;
}

.contract-summary-grid small {
  color: #756d73;
}

.contract-approval-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.contract-approval-grid article {
  display: grid;
  gap: 12px;
  min-height: 138px;
  padding: 16px;
  border: 1px solid #e5e0e3;
  border-radius: 9px;
  background: #fbfafb;
}

.contract-approval-grid article > div {
  display: grid;
  gap: 3px;
}

.contract-approval-grid article > small {
  color: #746c72;
}

.contract-approval-grid form {
  align-self: end;
}

.contract-supporting-details {
  overflow: hidden;
  border: 1px solid #ded9dc;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 7px rgb(45 34 40 / 5%);
}

.contract-supporting-details > summary {
  position: relative;
  padding: 16px 48px 16px 20px;
  color: #3f3840;
  font-size: 0.86rem;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}

.contract-supporting-details > summary::-webkit-details-marker {
  display: none;
}

.contract-supporting-details > summary::after {
  position: absolute;
  top: 50%;
  right: 20px;
  color: #7b0045;
  content: "+";
  font-size: 1.2rem;
  transform: translateY(-50%);
}

.contract-supporting-details[open] > summary::after {
  content: "−";
}

.contract-supporting-details[open] > summary {
  border-bottom: 1px solid #e7e2e5;
  background: #fbf9fa;
}

.contract-supporting-content {
  padding: 18px 20px;
}

@media (max-width: 991.98px) {
  .contract-workflow {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .contract-workflow-step:not(:last-child)::after {
    top: 28px;
    bottom: -14px;
    left: 15px;
    width: 2px;
    height: auto;
  }

  .contract-next-action,
  .contract-blockers {
    align-items: flex-start;
    grid-template-columns: 1fr;
  }

  .contract-next-action {
    flex-direction: column;
  }

  .contract-approval-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575.98px) {
  .contract-summary-grid {
    grid-template-columns: 1fr;
  }

  .contract-primary-action,
  .contract-primary-action .btn,
  .contract-primary-action form {
    width: 100%;
  }
}

.policy-rte {
  display: grid;
  gap: 8px;
}

.policy-rte-surface {
  width: 100%;
}

.policy-rte .toastui-editor-defaultUI {
  border-color: #d7dde5;
  border-radius: 8px;
  overflow: hidden;
}

.policy-rte .toastui-editor-toolbar {
  background: #f8fafc;
}

.policy-rte .toastui-editor-main,
.policy-rte .toastui-editor-ww-container,
.policy-rte .toastui-editor-md-container {
  min-height: 590px;
}

.policy-rte .toastui-editor-contents {
  color: #1f2937;
  font-family: var(--podium-font-sans);
  font-size: 1rem;
  line-height: 1.58;
}

.text-prewrap {
  white-space: pre-wrap;
}

@media (max-width: 991.98px) {
  .policy-rte .toastui-editor-main,
  .policy-rte .toastui-editor-ww-container,
  .policy-rte .toastui-editor-md-container {
    min-height: 440px;
  }
}

.help-results-section {
  margin-top: 14px;
}

.help-article-list {
  display: grid;
  gap: 28px;
}

.help-category-group {
  padding: 18px;
  border: 1px solid #dde6ef;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 2px rgb(15 23 42 / 5%);
}

.help-category-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: -18px -18px 16px;
  padding: 14px 18px;
  border-bottom: 1px solid #dbe6f1;
  border-radius: 8px 8px 0 0;
  background: #f4f8fc;
}

.help-category-header h2 {
  margin: 0;
  color: #0f4f8f;
  font-size: 1.22rem;
  line-height: 1.2;
  font-weight: 750;
}

.help-category-header span {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 650;
  text-transform: uppercase;
  white-space: nowrap;
}

.help-article-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.help-article-card {
  display: flex;
  flex-direction: column;
  min-height: 116px;
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  color: #253242;
  text-decoration: none;
  transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.help-article-card:hover,
.help-article-card:focus {
  border-color: #8bbcf3;
  color: #172033;
  box-shadow: 0 8px 18px rgb(15 23 42 / 8%);
  transform: translateY(-1px);
}

.help-article-card-title {
  display: block;
  color: #1d2736;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.3;
}

.help-article-card-summary {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-size: 0.88rem;
  line-height: 1.35;
}

.help-article-card-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: auto;
  padding-top: 12px;
}

@media (min-width: 900px) {
  .help-article-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1400px) {
  .help-article-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.help-article-body {
  color: #253242;
  line-height: 1.65;
  white-space: pre-wrap;
}

.signature-pad-wrap {
  width: 100%;
  aspect-ratio: 760 / 220;
}

.signature-pad {
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  touch-action: none;
}

.signature-preview {
  display: flex;
  align-items: center;
  min-height: 120px;
  padding: 12px;
  border: 1px solid #e5eaf0;
  border-radius: 8px;
  background: #ffffff;
}

.signature-preview img {
  max-width: 100%;
  max-height: 96px;
  object-fit: contain;
}

.decision-form {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) auto;
  gap: 8px;
  justify-content: end;
}

.calendar-table {
  table-layout: fixed;
}

.calendar-table th {
  width: 14.285%;
}

.calendar-cell {
  min-height: 132px;
  height: 132px;
  vertical-align: top;
  background: #ffffff;
}

.calendar-cell-muted {
  background: #f8fafc;
  color: #64748b;
}

.calendar-date {
  margin-bottom: 6px;
  font-weight: 700;
}

.calendar-date-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.staff-calendar-summary {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 2px 7px;
  max-width: 125px;
  padding: 3px 7px;
  border: 1px solid #d8dee8;
  border-radius: 999px;
  color: #5b0b3b;
  background: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: right;
}

.staff-calendar-summary:hover,
.staff-calendar-summary:focus {
  border-color: #9f2e20;
  color: #9f2e20;
  background: #fff5f1;
}

.staff-calendar-summary-empty {
  color: #7c8798;
  font-size: 0.72rem;
  line-height: 1.25;
  text-align: right;
}

.calendar-event {
  display: grid;
  gap: 2px;
  padding: 6px 0;
  border-top: 1px solid #e5eaf0;
  font-size: 0.8rem;
}

.calendar-event-holiday {
  border-top-color: #cbd5e1;
}

.calendar-event-roster {
  border-top-color: #bfdbfe;
}

.calendar-event-leave {
  border-top-color: #bbf7d0;
}

.calendar-event-birthday {
  border-top-color: #f9a8d4;
}

.calendar-event-anniversary {
  border-top-color: #c4b5fd;
}

.staff-calendar-badge-birthday {
  color: #831843;
  background: #fce7f3;
}

.staff-calendar-badge-anniversary {
  color: #5b21b6;
  background: #ede9fe;
}

.staff-shout-out-trigger {
  align-self: flex-start;
  margin-top: 3px;
  padding: 2px 7px;
  border: 1px solid rgb(101 1 62 / 28%);
  border-radius: 999px;
  background: #fff;
  color: #65013e;
  font-size: 0.66rem;
  font-weight: 750;
}

.staff-shout-out-trigger:hover,
.staff-shout-out-trigger:focus { background: #65013e; color: #fff; }
.team-shout-out-modal { border: 0; border-radius: 12px; box-shadow: 0 18px 48px rgb(39 23 32 / 22%); }
.team-shout-out-recipient-note { display: grid; gap: 3px; margin-bottom: 18px; padding: 13px 14px; border: 1px solid #eadfe6; border-radius: 8px; background: #fcf6fa; }
.team-shout-out-recipient-note strong { color: #5d123f; font-size: 0.86rem; }
.team-shout-out-recipient-note span { color: #746b72; font-size: 0.78rem; }
.team-shout-out-teams { margin-top: 16px; padding: 13px 14px; border: 1px solid #d7e6f5; border-radius: 8px; background: #f4f9ff; }
.team-shout-out-teams .form-check-label,
.team-shout-out-teams strong { color: #1b365d; font-size: 0.86rem; font-weight: 700; }
.team-shout-out-teams p { margin: 4px 0 0 24px; color: #667384; font-size: 0.75rem; }
.team-shout-out-teams-unavailable { border-color: #e6e0e4; background: #f8f6f7; }
.team-shout-out-teams-unavailable strong { color: #655d63; }
.team-shout-out-teams-unavailable p { margin-left: 0; }
.team-shout-out-gift { margin-top: 18px; padding-top: 16px; border-top: 1px solid #ebe5e9; }
.team-shout-out-gift-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.team-shout-out-gift-heading .form-label { margin-bottom: 2px; }
.team-shout-out-gift-heading .form-label span { margin-left: 5px; color: #847c83; font-size: 0.68rem; font-weight: 600; text-transform: uppercase; }
.team-shout-out-gift-heading p { margin: 0; color: #746b72; font-size: 0.74rem; }
.team-shout-out-gift-heading a { flex: 0 0 auto; font-size: 0.75rem; font-weight: 700; text-decoration: none; }

.calendar-event-muted,
.calendar-staffing {
  color: #64748b;
  font-size: 0.8rem;
}

.staff-calendar-modal .modal-header {
  align-items: flex-start;
}

.staff-calendar-modal-summary {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}

.staff-calendar-modal-summary span {
  padding: 9px 12px;
  border: 1px solid #e1e5eb;
  border-radius: 8px;
  background: #f8fafc;
}

.staff-calendar-modal-section + .staff-calendar-modal-section {
  margin-top: 24px;
}

.staff-calendar-modal-section h3 {
  margin-bottom: 10px;
  font-size: 0.95rem;
}

.staff-calendar-person-list {
  border: 1px solid #e1e5eb;
  border-radius: 8px;
  overflow: hidden;
}

.staff-calendar-person {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 11px 13px;
  background: #fff;
}

.staff-calendar-person + .staff-calendar-person {
  border-top: 1px solid #e8ebf0;
}

.staff-calendar-person > div,
.staff-calendar-shift-time {
  display: grid;
  gap: 2px;
}

.staff-calendar-person span,
.staff-calendar-shift-time span {
  color: #64748b;
  font-size: 0.82rem;
}

.staff-calendar-shift-time {
  text-align: right;
}

@media (max-width: 575.98px) {
  .staff-calendar-person {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px;
  }

  .staff-calendar-shift-time {
    text-align: left;
  }
}

.calendar-staffing {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid #e5eaf0;
  font-weight: 600;
}

.roster-table th,
.roster-table td {
  min-width: 120px;
}

.roster-table th:first-child,
.roster-table td:first-child,
.roster-week-table th:first-child,
.roster-week-table td:first-child {
  min-width: 220px;
}

.roster-week-table th,
.roster-week-table td {
  min-width: 130px;
}

@media (max-width: 767.98px) {
  .page-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .form-grid,
  .detail-list > div {
    grid-template-columns: 1fr;
  }

  .recent-audit-log.table-responsive {
    overflow: visible;
  }

  .recent-audit-table thead {
    display: none;
  }

  .recent-audit-table,
  .recent-audit-table tbody,
  .recent-audit-table tr,
  .recent-audit-table td {
    display: block;
    width: 100%;
  }

  .recent-audit-table tr {
    padding: 14px 0;
    border-bottom: 1px solid #e5eaf0;
  }

  .recent-audit-table tr:last-child {
    border-bottom: 0;
  }

  .recent-audit-table td {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 8px;
    padding: 3px 0;
    border-bottom: 0;
  }

  .recent-audit-table td::before {
    content: attr(data-label);
    color: #526070;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.6;
    text-transform: uppercase;
  }
}
.employee-profile-header {
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.75rem;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding: 1.25rem;
}

.employee-readiness-strip {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 1rem;
}

.readiness-item {
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-left: 0.3rem solid #6c757d;
  border-radius: 0.5rem;
  color: inherit;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.75rem;
  text-decoration: none;
}

.readiness-item:hover { color: inherit; }
.readiness-item.is-complete { border-left-color: #198754; }
.readiness-item.needs-action { border-left-color: #dc3545; }
.readiness-item.in-progress { border-left-color: #fd7e14; }
.readiness-item.is-unavailable { background: #f8f9fa; border-left-color: #6c757d; }
.readiness-label { font-weight: 600; }
.readiness-state { color: #6c757d; font-size: 0.8125rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.employee-profile-tabs {
  background: #fff;
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  gap: 0.25rem;
  margin-bottom: 1rem;
  overflow-x: auto;
  scrollbar-width: thin;
}

.employee-profile-tabs a,
.employee-profile-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 0.2rem solid transparent;
  color: #495057;
  flex: 0 0 auto;
  padding: 0.75rem;
  text-decoration: none;
  white-space: nowrap;
}

.employee-profile-tabs a:hover,
.employee-profile-tabs a:focus-visible,
.employee-profile-tabs a.active,
.employee-profile-tabs button:hover,
.employee-profile-tabs button:focus-visible,
.employee-profile-tabs button.active {
  border-bottom-color: var(--bs-primary);
  color: var(--bs-primary);
}

.employee-profile-header-sticky {
  position: sticky;
  top: 0.75rem;
  z-index: 1010;
}

.employee-profile-identity {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  min-width: 0;
}

.employee-header-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
  margin-top: 0.75rem;
}

.employee-header-facts span { color: #263442; font-weight: 600; }
.employee-header-facts small { color: #6c757d; display: block; font-size: 0.72rem; font-weight: 500; text-transform: uppercase; }

.employee-profile-content > .tab-pane { min-height: 28rem; }

.actions-required-card { border-left: 0.3rem solid #f0ad4e; }

.employee-action-list {
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.employee-action-list a {
  align-items: center;
  background: #fff8e8;
  border: 1px solid #f4ddb0;
  border-radius: 0.5rem;
  color: #5b4213;
  display: flex;
  gap: 0.5rem;
  padding: 0.75rem;
  text-decoration: none;
}

.overview-detail-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.overview-detail-grid h3 { color: #52606d; font-size: 0.78rem; letter-spacing: 0.035em; margin-bottom: 0.4rem; text-transform: uppercase; }
.overview-detail-grid p { margin-bottom: 0; }
.overview-detail-wide { grid-column: 1 / -1; }

.overview-status-stack { display: grid; gap: 0.65rem; }
.overview-status-stack a {
  align-items: center;
  background: #fff;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.65rem;
  color: inherit;
  display: flex;
  justify-content: space-between;
  padding: 0.9rem 1rem;
  text-decoration: none;
}
.overview-status-stack a:hover { border-color: var(--bs-primary); box-shadow: 0 0.2rem 0.6rem rgba(26, 78, 125, 0.08); }
.overview-status-stack strong { color: var(--bs-primary); text-align: right; }

.payroll-connection-card { border-top: 0.25rem solid var(--bs-primary); }
.payroll-connection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.readiness-checklist { display: grid; gap: 0.5rem; }
.readiness-checklist > div {
  align-items: center;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  display: grid;
  gap: 0.1rem 0.65rem;
  grid-template-columns: auto 1fr auto;
  padding: 0.7rem 0.8rem;
}
.readiness-checklist > div > span { align-items: center; border-radius: 50%; display: inline-flex; font-weight: 700; height: 1.5rem; justify-content: center; width: 1.5rem; }
.readiness-checklist > div > small { color: #6c757d; }
.readiness-checklist .is-ready > span { background: #d9f3e5; color: #137342; }
.readiness-checklist .is-blocked > span { background: #fff0cf; color: #8a5a00; }

.balance-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.balance-grid > div { background: #f7f9fb; border-radius: 0.55rem; display: grid; gap: 0.25rem; padding: 1rem; }
.balance-grid strong { color: var(--bs-primary); font-size: 1.25rem; }
.balance-grid small { color: #6c757d; }

.summary-list-row { align-items: center; border-top: 1px solid var(--bs-border-color); display: flex; gap: 1rem; justify-content: space-between; padding: 0.75rem 0; }
.summary-list-row:first-of-type { border-top: 0; }
.summary-list-row span { min-width: 0; }
.summary-list-row small { color: #6c757d; display: block; }

.checklist-summary { border-top: 1px solid var(--bs-border-color); display: grid; gap: 1rem; grid-template-columns: minmax(12rem, 0.35fr) 1fr; padding: 1rem 0; }
.checklist-summary h3 { font-size: 1rem; margin-bottom: 0.5rem; }
.checklist-items { display: grid; gap: 0.4rem; }
.checklist-items > div { align-items: center; background: #f7f9fb; border-radius: 0.4rem; display: flex; justify-content: space-between; padding: 0.5rem 0.65rem; }
.checklist-items .is-complete { color: #6c757d; text-decoration: line-through; }

@media (max-width: 991.98px) {
  .employee-readiness-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .employee-profile-header-sticky { position: static; }
  .payroll-connection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  .employee-profile-header { flex-direction: column; }
  .employee-readiness-strip { grid-template-columns: 1fr; }
  .employee-profile-identity { flex-direction: column; }
  .employee-profile-actions { width: 100%; }
  .employee-action-list,
  .overview-detail-grid,
  .payroll-connection-grid,
  .balance-grid { grid-template-columns: 1fr; }
  .overview-detail-wide { grid-column: auto; }
  .checklist-summary { grid-template-columns: 1fr; }
}

.file-drop-zone {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 2px dashed #b8c7d8;
  border-radius: 12px;
  background: #f8fafc;
  transition: border-color 140ms ease, background-color 140ms ease, box-shadow 140ms ease;
}

.file-drop-zone.is-dragging {
  border-color: var(--podium-primary);
  background: #eef7ff;
  box-shadow: 0 0 0 4px rgb(15 79 143 / 10%);
}

.file-drop-zone.has-files {
  border-color: #5aa78f;
  background: #f2fbf7;
}

.file-drop-prompt {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  color: #334155;
  text-align: left;
  pointer-events: none;
}

.file-drop-prompt strong,
.file-drop-prompt small {
  display: block;
}

.file-drop-prompt small {
  margin-top: 2px;
  color: #64748b;
}

.file-drop-icon {
  color: var(--podium-primary);
  font-size: 1.75rem;
  line-height: 1;
}

.file-drop-zone input[type="file"] {
  background-color: #fff;
}

.file-drop-status {
  min-height: 1.25rem;
  overflow-wrap: anywhere;
  color: #526070;
  font-size: 0.82rem;
  font-weight: 600;
}

/* Hub-style application shell */
html {
  --podium-primary: #6847c7;
  --podium-primary-dark: #5133aa;
  --podium-primary-teal: #7555d1;
  --podium-primary-teal-dark: #5938b5;
  --podium-primary-gradient: linear-gradient(135deg, #7555d1 0%, #5b3bb7 100%);
  --podium-primary-soft: #f3effd;
  --podium-surface-soft: #fff;
  --podium-border: #dedce8;
  --podium-shadow: 0 12px 32px rgb(39 33 61 / 12%);
  --podium-shadow-soft: 0 4px 14px rgb(39 33 61 / 9%);
  --bs-primary: #6847c7;
  --bs-primary-rgb: 104, 71, 199;
  --bs-link-color: #5938b5;
  --bs-link-hover-color: #41258f;
  --hub-plum: #34255f;
  --hub-plum-dark: #24212b;
  --suite-rail-width: 76px;
  --hub-rail-width: 240px;
  --hub-rail-expanded: 240px;
  --hub-suitebar-height: 0px;
  --hub-topbar-height: 70px;
  --hub-shell-height: var(--hub-topbar-height);
}

body {
  margin-bottom: 0;
  background: #fff;
  color: #2d2a2b;
}

body > header {
  position: sticky;
  top: 0;
  z-index: 1080;
}

.suite-topbar {
  position: relative;
  z-index: 1090;
  min-height: var(--hub-suitebar-height);
  border-bottom: 1px solid rgb(255 255 255 / 14%);
  background: var(--hub-plum-dark);
}

.suite-topbar .container-fluid {
  display: flex;
  min-height: var(--hub-suitebar-height);
  align-items: center;
  gap: 18px;
  flex-wrap: nowrap;
}

.hub-topbar {
  position: relative;
  z-index: 1080;
  min-height: var(--hub-topbar-height);
  border: 0 !important;
  background: var(--hub-plum);
  box-shadow: 0 1px 4px rgb(44 0 25 / 24%);
}

.hub-topbar .container-fluid { gap: 18px; flex-wrap: nowrap; }
.hub-topbar .navbar-toggler { border-color: rgb(255 255 255 / 42%); background: rgb(255 255 255 / 94%); }
.hub-topbar .navbar-collapse { min-width: 0; gap: 14px; }

.suite-app-switcher {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 3px;
  max-width: none;
  padding: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.suite-app-switcher::-webkit-scrollbar { display: none; }
.suite-app-link,
.suite-app-link:visited {
  flex: 0 0 auto;
  padding: 7px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  color: rgb(255 255 255 / 82%);
  font-size: 0.74rem;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}
a.suite-app-link:hover,
a.suite-app-link:focus-visible { border-color: rgb(255 255 255 / 28%); background: rgb(255 255 255 / 11%); color: #fff; outline: 2px solid rgb(255 255 255 / 72%); outline-offset: 2px; }
.suite-app-link.active,
.suite-app-link.active:visited { border-color: #fff; background: #fff; color: var(--hub-plum); box-shadow: 0 2px 5px rgb(24 0 14 / 26%); }
.suite-app-link.is-unavailable { color: rgb(255 255 255 / 62%); cursor: not-allowed; }

.hub-global-search { position: relative; flex: 1 1 260px; min-width: 180px; max-width: 390px; margin-right: auto; }
.hub-global-search-button { position: absolute; top: 50%; right: 6px; width: 32px; height: 32px; padding: 0; transform: translateY(-50%); border: 0; border-radius: 50%; background: transparent; color: #fff; display: grid; place-items: center; }
.hub-global-search-button:hover,
.hub-global-search-button:focus-visible { background: rgb(255 255 255 / 16%); outline: 2px solid #fff; outline-offset: 1px; }
.hub-global-search-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.8; pointer-events: none; }
.hub-global-search input { width: 100%; height: 38px; padding: 0 44px 0 16px; border: 1px solid rgb(255 255 255 / 48%); border-radius: 999px; outline: 0; background: rgb(255 255 255 / 7%); color: #fff; }
.hub-global-search input::placeholder { color: rgb(255 255 255 / 78%); }
.hub-global-search input:focus { border-color: #fff; box-shadow: 0 0 0 3px rgb(255 255 255 / 16%); }

.hub-topbar .app-account-nav { flex-direction: row; }
.hub-topbar .utility-icon-link,
.hub-topbar .avatar-button { border-color: rgb(255 255 255 / 34%); background: rgb(255 255 255 / 10%); color: #fff; }
.hub-topbar .utility-icon-link:hover,
.hub-topbar .utility-icon-link:focus,
.hub-topbar .avatar-button:hover,
.hub-topbar .avatar-button:focus { border-color: #fff; background: rgb(255 255 255 / 20%); color: #fff; }
.hub-topbar .avatar-initial { background: #fff; color: var(--hub-plum); }

.app-primary-nav {
  position: fixed;
  top: var(--hub-shell-height);
  bottom: 0;
  left: 0;
  z-index: 1070;
  display: flex;
  width: var(--hub-rail-width);
  padding: 14px 10px;
  /* Bootstrap's desktop navbar rule has higher specificity and otherwise
     forces these rail items into a horizontal row across the workspace. */
  flex-direction: column !important;
  flex-wrap: nowrap;
  gap: 6px !important;
  overflow: visible;
  background: var(--hub-plum-dark);
  box-shadow: 2px 0 8px rgb(44 0 25 / 16%);
  transition: width 180ms ease;
}

.app-primary-nav:hover,
.app-primary-nav:focus-within,
.app-primary-nav.has-flyout-open { width: var(--hub-rail-expanded); }
.app-primary-nav .nav-item { position: relative; width: 100%; flex: 0 0 auto; }

.app-primary-nav .nav-link,
.app-navbar .app-primary-nav .nav-link,
.app-navbar .app-primary-nav .nav-link:visited,
.app-navbar .app-primary-nav .nav-link.dropdown-toggle,
.app-navbar .app-primary-nav .nav-link.dropdown-toggle:visited,
.app-navbar .app-primary-nav .nav-link.show,
.app-navbar .app-primary-nav .show > .nav-link,
.app-navbar .app-primary-nav .nav-link.active {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 46px;
  padding: 0 13px;
  border-radius: 7px;
  color: rgb(255 255 255 / 82%);
  gap: 14px;
  overflow: hidden;
  white-space: nowrap;
}

.app-primary-nav .nav-link:hover,
.app-primary-nav .nav-link:focus,
.app-primary-nav .nav-link.show,
.app-navbar .app-primary-nav .nav-link:hover,
.app-navbar .app-primary-nav .nav-link:focus,
.app-navbar .app-primary-nav .nav-link.show { background: #7b0750; color: #fff; }
.app-primary-nav .nav-icon { width: 20px; height: 20px; min-width: 20px; opacity: 1; }
.app-primary-nav .nav-link > span { max-width: 0; overflow: hidden; opacity: 0; font-size: 0.9rem; font-weight: 650; transition: max-width 160ms ease, opacity 130ms ease; }
.app-primary-nav:hover .nav-link > span,
.app-primary-nav:focus-within .nav-link > span { max-width: 160px; opacity: 1; }
.app-primary-nav .dropdown-toggle::after { display: none; }

/* Each primary section exposes the same destinations as its persistent
   in-page panel when the desktop rail is hovered or keyboard-focused. */
.section-nav-flyout {
  position: fixed;
  top: var(--hub-shell-height);
  bottom: 0;
  left: var(--hub-rail-expanded);
  z-index: 1085;
  display: none;
  grid-template-rows: auto minmax(0, 1fr);
  width: 330px;
  overflow: hidden;
  border: 0;
  border-left: 1px solid #e5dce1;
  border-radius: 0;
  background: #fff;
  box-shadow: 12px 0 30px rgb(44 0 25 / 16%);
}

.section-nav-flyout-header {
  padding: 24px 22px 20px;
  border-bottom: 1px solid #eadfe5;
  background: #fff;
}
.section-nav-flyout-header strong {
  display: block;
  color: var(--hub-plum);
  font-size: 1.08rem;
  letter-spacing: -.01em;
}
.section-nav-flyout-header small {
  display: block;
  margin-top: 7px;
  color: #75636d;
  font-size: .76rem;
  line-height: 1.45;
}

.section-nav-flyout-links {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 14px 12px 24px;
  overflow-y: auto;
}
.section-nav-flyout-group {
  margin: 13px 10px 4px;
  padding-top: 13px;
  border-top: 1px solid #eee5ea;
  color: #8a6a7b;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.section-nav-flyout-group:first-child { margin-top: 2px; padding-top: 0; border-top: 0; }
.section-nav-flyout-links a,
.section-nav-flyout-links a:visited {
  display: grid;
  grid-template-columns: 7px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 42px;
  padding: 9px 11px;
  border-radius: 8px;
  color: var(--hub-plum);
  font-size: .82rem;
  font-weight: 680;
  text-decoration: none;
}
.section-nav-flyout-links a > span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #cfb3c2;
}
.section-nav-flyout-links a > b {
  color: var(--hub-plum);
  font-weight: 650;
  opacity: 0;
  transform: translateX(-3px);
  transition: opacity 120ms ease, transform 120ms ease;
}
.section-nav-flyout-links a:hover,
.section-nav-flyout-links a:focus-visible,
.section-nav-flyout-links a.active {
  background: #f5e9ef;
  color: var(--hub-plum);
}
.section-nav-flyout-links a:hover > span,
.section-nav-flyout-links a:focus-visible > span,
.section-nav-flyout-links a.active > span { background: var(--podium-primary-gradient); }
.section-nav-flyout-links a:hover > b,
.section-nav-flyout-links a:focus-visible > b {
  opacity: 1;
  transform: translateX(0);
}

/* Operations stays available as a persistent in-page panel, while this
   compact flyout provides fast access directly from the main rail. */
.app-primary-nav .operations-nav-flyout {
  position: absolute !important;
  top: -8px !important;
  left: 100% !important;
  width: min(760px, calc(100vw - var(--hub-rail-expanded) - 28px));
  margin: 0;
  padding: 0 0 0 12px;
  transform: none !important;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.operations-nav-flyout-surface {
  overflow: hidden;
  border: 1px solid #ddd7da;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 16px 36px rgb(44 0 25 / 22%);
}

.operations-nav-flyout-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 17px 20px;
  border-bottom: 1px solid #e8e3e5;
  background: linear-gradient(120deg, #fff 0%, #faf4f7 100%);
}

.operations-nav-flyout-header > div { min-width: 0; }
.operations-nav-flyout-header > div span {
  display: block;
  margin-bottom: 2px;
  color: var(--podium-primary);
  font-size: .67rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.operations-nav-flyout-header > div strong { color: #221b20; font-size: 1rem; }

.operations-nav-dashboard-link,
.operations-nav-dashboard-link:visited {
  flex: 0 0 auto;
  padding: 8px 11px;
  border-radius: 8px;
  background: #f3e7ed;
  color: var(--hub-plum);
  font-size: .78rem;
  font-weight: 750;
  text-decoration: none;
}
.operations-nav-dashboard-link:hover,
.operations-nav-dashboard-link:focus-visible,
.operations-nav-dashboard-link.active { background: var(--hub-plum); color: #fff; }

.operations-nav-flyout-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  padding: 13px;
}

.operations-nav-flyout-group {
  min-width: 0;
  padding: 7px 12px 9px;
  border-right: 1px solid #eee9eb;
}
.operations-nav-flyout-group:last-child { border-right: 0; }
.operations-nav-flyout-group h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 7px;
  color: #31272d;
  font-size: .78rem;
  font-weight: 780;
}
.operations-nav-flyout-group h3 span {
  display: grid;
  width: 23px;
  height: 23px;
  place-items: center;
  border-radius: 7px;
  background: #f2e7ec;
  color: var(--hub-plum);
  font-size: .68rem;
}
.operations-nav-flyout-group > a,
.operations-nav-flyout-group > a:visited {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 32px;
  padding: 6px 8px;
  border-radius: 7px;
  color: #5b5056;
  font-size: .77rem;
  font-weight: 620;
  text-decoration: none;
}
.operations-nav-flyout-group > a:hover,
.operations-nav-flyout-group > a:focus-visible,
.operations-nav-flyout-group > a.active { background: #f8edf3; color: var(--hub-plum); }
.operations-nav-flyout-group > a.is-create {
  margin-top: 4px;
  border: 1px solid #ead8e1;
  color: var(--hub-plum);
}

.operations-nav-flyout-tools {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 11px 18px;
  border-top: 1px solid #e8e3e5;
  background: #faf9f8;
}
.operations-nav-flyout-tools strong {
  margin-right: 5px;
  color: #7e7078;
  font-size: .65rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.operations-nav-flyout-tools a,
.operations-nav-flyout-tools a:visited {
  padding: 6px 8px;
  border-radius: 7px;
  color: #51474d;
  font-size: .73rem;
  font-weight: 650;
  text-decoration: none;
}
.operations-nav-flyout-tools a:hover,
.operations-nav-flyout-tools a:focus-visible,
.operations-nav-flyout-tools a.active { background: #f0e4ea; color: var(--hub-plum); }

@media (min-width: 992px) {
  .section-flyout-item:hover > .section-nav-flyout,
  .section-flyout-item:focus-within > .section-nav-flyout,
  .section-flyout-item.is-flyout-open > .section-nav-flyout { display: grid; }
  .operations-nav-item:hover > .operations-nav-flyout,
  .operations-nav-item:focus-within > .operations-nav-flyout { display: block; }
}

.section-navigation {
  position: sticky;
  top: var(--hub-shell-height);
  z-index: 1065;
  margin-left: var(--hub-rail-width);
  border-bottom: 1px solid #d9d7d3;
  background: #fff;
  box-shadow: 0 2px 5px rgb(45 34 40 / 8%);
}

.section-navigation-inner {
  display: flex;
  min-height: 52px;
  padding: 7px 22px;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.section-navigation strong {
  margin-right: 10px;
  color: #40383c;
  font-size: 0.84rem;
  white-space: nowrap;
}

.section-navigation a {
  flex: 0 0 auto;
  padding: 8px 11px;
  border-radius: 6px;
  color: #5a5155;
  font-size: 0.84rem;
  font-weight: 650;
  text-decoration: none;
  white-space: nowrap;
}

.section-navigation a:hover,
.section-navigation a:focus,
.section-navigation a[aria-current="page"] {
  background: #fff0eb;
  color: #9f2e20;
}

.app-workspace { padding-right: 28px !important; padding-left: calc(var(--hub-rail-width) + 28px) !important; }
.app-main { width: 100%; max-width: none; min-height: calc(100vh - 112px); padding-top: 24px; }
.app-footer { background: #fff; }

.metric-card,
.work-panel,
.dashboard-action-section,
.dashboard-calendar-panel,
.employee-profile-header,
.readiness-item,
.overview-status-stack a,
.home-widget,
.home-summary-card {
  border-color: transparent;
  border-radius: 0;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}
.work-panel { padding: 18px 20px; }

/* The shared workspace uses one quiet surface treatment throughout the suite.
   Branded welcome and journey cards keep their intentional colour. */
.app-workspace :where(
  article,
  .card,
  [class$="-panel"],
  [class*="-panel "],
  [class$="-card"],
  [class*="-card "],
  [class$="-hero"],
  [class*="-hero "],
  [class$="-strip"],
  [class*="-strip "],
  .operations-side-nav,
  .operations-side-summary,
  .governance-pulse,
  .governance-metric,
  .governance-workspaces,
  .records-stat,
  .records-library,
  .records-queue,
  .onboarding-stepper,
  .onboarding-review-list,
  .onboarding-sensitive-note,
  .onboarding-admin-response,
  .onboarding-approval-summary,
  .onboarding-account-grid > div,
  .record-tabs,
  .template-builder-pane,
  .review-builder-sidebar,
  .review-builder-preview-pane
) {
  border-radius: 0 !important;
}

.app-workspace :where(
  .card,
  [class$="-panel"],
  [class*="-panel "],
  [class$="-card"],
  [class*="-card "],
  [class$="-hero"],
  [class*="-hero "],
  [class$="-strip"],
  [class*="-strip "],
  .operations-side-nav,
  .operations-side-summary,
  .governance-pulse,
  .governance-metric,
  .governance-workspaces,
  .records-stat,
  .records-library,
  .records-queue,
  .onboarding-stepper,
  .onboarding-review-list,
  .onboarding-sensitive-note,
  .onboarding-admin-response,
  .onboarding-approval-summary,
  .onboarding-account-grid > div,
  .record-tabs,
  .template-builder-pane,
  .review-builder-sidebar,
  .review-builder-preview-pane
):not(.home-welcome-card):not(.starter-journey-card):not(.record-tab-panel):not(.without-section-panel):not(.operations-side-panel) {
  border-color: var(--podium-border) !important;
  background-color: #fff !important;
  box-shadow: var(--podium-shadow-soft) !important;
}

.panel-header { border-bottom-color: #e5e2df; }
.form-control,
.form-select,
.input-group-text { border-color: #c9c6c2; border-radius: 6px; }
.btn,
.btn-sm { border-radius: 6px; }
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active { box-shadow: none; }

@media (max-width: 991.98px) {
  .suite-topbar .container-fluid { gap: 12px; }
  .suite-app-switcher { min-width: 0; width: auto; max-width: none; }
  .hub-topbar { position: relative; }
  .hub-topbar .container-fluid { flex-wrap: wrap; }
  .hub-topbar .navbar-collapse { gap: 12px; padding-top: 14px; }
  .hub-global-search { width: 100%; max-width: none; margin-bottom: 12px; }
  .app-primary-nav,
  .app-primary-nav:hover,
  .app-primary-nav:focus-within { position: static; width: 100%; max-height: 58vh; padding: 10px; overflow-y: auto; border-radius: 8px; box-shadow: none; }
  .app-primary-nav .nav-link > span,
  .app-primary-nav:hover .nav-link > span,
  .app-primary-nav:focus-within .nav-link > span { max-width: 180px; opacity: 1; }
  .app-primary-nav .operations-nav-flyout {
    position: static !important;
    width: 100%;
    padding: 6px 0 0;
  }
  .app-primary-nav .section-nav-flyout { display: none !important; }
  .operations-nav-flyout-surface { border-radius: 9px; box-shadow: none; }
  .operations-nav-flyout-grid { grid-template-columns: 1fr; }
  .operations-nav-flyout-group { border-right: 0; border-bottom: 1px solid #eee9eb; }
  .operations-nav-flyout-tools { align-items: flex-start; flex-wrap: wrap; }
  .hub-topbar .app-account-nav { margin-top: 12px; margin-bottom: 6px; }
  .section-navigation { top: 0; margin-left: 0; }
  .section-navigation-inner { padding-right: 16px; padding-left: 16px; }
  .app-workspace { padding-right: 16px !important; padding-left: 16px !important; }
}

@media (max-width: 575.98px) {
  .suite-topbar .container-fluid,
  .hub-topbar .container-fluid { padding-right: 14px !important; padding-left: 14px !important; }
  .app-main { padding-top: 16px; }
}

/* Shared Podium interaction surfaces. These primitives are reused by HR and
   provide the contract for the other suite applications. */
.podium-workspace { min-width: 0; }
.podium-dialog .modal-content { border: 1px solid #d9d7d3; border-radius: 12px; box-shadow: 0 18px 48px rgb(45 34 40 / 18%); }
.podium-dialog .modal-header,
.podium-dialog .modal-footer { border-color: #e5e2df; }
.podium-inspector.offcanvas { width: min(520px, 100vw); border-left: 1px solid #d9d7d3; box-shadow: -12px 0 36px rgb(45 34 40 / 14%); }
.podium-inspector .offcanvas-header { border-bottom: 1px solid #e5e2df; }

@media (max-width: 575.98px) {
  .podium-dialog .modal-dialog { margin: 0; min-height: 100%; }
  .podium-dialog .modal-content { min-height: 100vh; border: 0; border-radius: 0; }
  .podium-inspector.offcanvas { width: 100vw; }
}

/* Governance command centre */
.governance-centre { display: grid; gap: 18px; color: #27232a; }
.governance-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(320px, 410px); gap: 36px; align-items: center; min-height: 265px; padding: 34px 38px; overflow: hidden; border: 1px solid #d7d5d2; border-radius: 12px; background: linear-gradient(128deg, #fefefe 0%, #f5f7f6 54%, #e8f0ed 100%); box-shadow: 0 2px 8px rgb(37 43 40 / 7%); }
.governance-hero::after { position: absolute; right: -80px; bottom: -170px; width: 340px; height: 340px; border: 75px solid rgb(25 112 91 / 6%); border-radius: 50%; content: ""; }
.governance-hero > div:first-child { position: relative; z-index: 1; }
.governance-eyebrow { margin: 0 0 7px; color: #d9573d; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.13em; text-transform: uppercase; }
.governance-hero h1 { margin: 0; color: #171a1e; font-size: clamp(2rem, 3.1vw, 3.3rem); font-weight: 720; letter-spacing: -0.04em; line-height: 1.04; }
.governance-hero > div:first-child > p:not(.governance-eyebrow) { max-width: 620px; margin: 16px 0 0; color: #66706c; font-size: 1rem; line-height: 1.6; }
.governance-hero-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.governance-pulse { position: relative; z-index: 1; display: flex; align-items: center; gap: 17px; padding: 21px; border: 1px solid #cddbd6; border-radius: 10px; background: rgb(255 255 255 / 78%); backdrop-filter: blur(8px); }
.governance-pulse-icon { display: grid; flex: 0 0 62px; width: 62px; height: 62px; place-items: center; border-radius: 15px; background: #e4f3ed; color: #19705b; }
.governance-pulse-icon svg { width: 32px; height: 32px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; }
.governance-pulse small, .governance-pulse strong { display: block; }
.governance-pulse small { color: #737b77; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.07em; text-transform: uppercase; }
.governance-pulse strong { margin-top: 3px; color: #1b2521; font-size: 1.18rem; }
.governance-pulse p { margin: 4px 0 0; color: #727975; font-size: 0.75rem; line-height: 1.4; }
.governance-pulse-risk { border-color: #efc6bd; }
.governance-pulse-risk .governance-pulse-icon { background: #ffebe7; color: #c64b37; }
.governance-pulse-attention { border-color: #ead6a5; }
.governance-pulse-attention .governance-pulse-icon { background: #fff4d7; color: #a36b0d; }

.governance-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.governance-metric { display: grid; min-height: 118px; padding: 17px 19px; border: 1px solid #dcd9d6; border-radius: 9px; background: #fff; color: inherit; text-decoration: none; box-shadow: 0 1px 3px rgb(40 36 38 / 6%); transition: border-color 140ms ease, transform 140ms ease; }
.governance-metric:hover, .governance-metric:focus { border-color: #aebeb8; color: inherit; transform: translateY(-1px); }
.governance-metric span { color: #747a77; font-size: 0.68rem; font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.governance-metric strong { margin-top: 5px; color: #19705b; font-size: 1.8rem; line-height: 1; }
.governance-metric small { align-self: end; margin-top: 8px; color: #817c80; font-size: 0.7rem; }
.governance-metric-risk strong { color: #d14e39; }

.governance-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(340px, 0.75fr); gap: 14px; align-items: start; }
.governance-panel, .governance-workspaces, .governance-report-strip { border: 1px solid #d9d7d3; border-radius: 10px; background: #fff; box-shadow: 0 1px 4px rgb(42 36 39 / 7%); }
.governance-panel { overflow: hidden; }
.governance-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 21px 16px; }
.governance-panel-heading h2 { margin: 0; color: #1d1a20; font-size: 1.1rem; font-weight: 750; }
.governance-panel-heading > span { color: #7d767c; font-size: 0.72rem; }
.governance-panel-heading > a { color: #65013e; font-size: 0.75rem; font-weight: 700; text-decoration: none; }
.governance-risk-list { border-top: 1px solid #e9e6e3; }
.governance-risk-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; gap: 13px; align-items: center; min-height: 74px; padding: 12px 18px; border-bottom: 1px solid #ece9e7; color: inherit; text-decoration: none; transition: background 130ms ease; }
.governance-risk-row:last-child { border-bottom: 0; }
.governance-risk-row:hover, .governance-risk-row:focus { background: #fbfaf8; color: inherit; }
.governance-risk-count { display: grid; width: 36px; height: 36px; place-items: center; border-radius: 8px; background: #f1ecef; color: #65013e; font-size: 0.85rem; font-weight: 800; }
.governance-risk-high .governance-risk-count { background: #ffebe7; color: #c64b37; }
.governance-risk-medium .governance-risk-count { background: #fff4d9; color: #96630d; }
.governance-risk-copy { display: grid; min-width: 0; }
.governance-risk-copy strong { color: #312c31; font-size: 0.79rem; }
.governance-risk-copy small { margin-top: 3px; overflow: hidden; color: #827b80; font-size: 0.69rem; text-overflow: ellipsis; white-space: nowrap; }
.governance-severity { padding: 4px 8px; border-radius: 11px; background: #f0eeec; color: #686166; font-size: 0.63rem; font-weight: 750; text-transform: uppercase; }
.governance-risk-high .governance-severity { background: #ffebe7; color: #b44231; }
.governance-risk-medium .governance-severity { background: #fff3d7; color: #88600f; }
.governance-risk-action { color: #65013e; font-size: 0.69rem; font-weight: 700; white-space: nowrap; }
.governance-clear-state { display: grid; min-height: 280px; padding: 36px; place-items: center; align-content: center; text-align: center; }
.governance-clear-state > span { display: grid; width: 54px; height: 54px; margin-bottom: 12px; place-items: center; border-radius: 50%; background: #e3f3ed; color: #19705b; font-size: 1.2rem; font-weight: 800; }
.governance-clear-state h3 { margin: 0; font-size: 0.95rem; }
.governance-clear-state p { margin: 6px 0 0; color: #7f797d; font-size: 0.73rem; }
.governance-clear-state-compact { min-height: 230px; }
.governance-timeline { display: grid; gap: 0; margin: 0; padding: 0 21px 15px; list-style: none; }
.governance-timeline li { position: relative; display: grid; grid-template-columns: 13px minmax(0, 1fr); gap: 10px; padding: 9px 0; }
.governance-timeline li:not(:last-child)::after { position: absolute; top: 22px; bottom: -5px; left: 5px; width: 1px; background: #dedbd8; content: ""; }
.governance-timeline i { position: relative; z-index: 1; width: 11px; height: 11px; margin-top: 3px; border: 3px solid #dcece7; border-radius: 50%; background: #34836e; }
.governance-timeline li > div { display: grid; min-width: 0; }
.governance-timeline strong { color: #393339; font-size: 0.73rem; text-transform: capitalize; }
.governance-timeline span { margin-top: 2px; overflow: hidden; color: #716a70; font-size: 0.67rem; text-overflow: ellipsis; white-space: nowrap; }
.governance-timeline small { margin-top: 3px; color: #999297; font-size: 0.61rem; }

.governance-workspaces { padding: 4px 21px 21px; }
.governance-workspaces .governance-panel-heading { padding-right: 0; padding-left: 0; }
.governance-workspace-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.governance-workspace-grid > a { display: grid; grid-template-columns: auto 1fr; gap: 7px 12px; padding: 18px; border: 1px solid #e1dedb; border-radius: 8px; background: #fcfbfa; color: inherit; text-decoration: none; transition: background 140ms ease, border-color 140ms ease, transform 140ms ease; }
.governance-workspace-grid > a:hover, .governance-workspace-grid > a:focus { border-color: #b9cbc4; background: #f8fcfa; color: inherit; transform: translateY(-1px); }
.governance-workspace-icon { display: grid; grid-row: 1 / 4; width: 40px; height: 40px; place-items: center; border-radius: 9px; background: #e4f1ed; color: #19705b; font-size: 1rem; font-weight: 800; }
.governance-workspace-grid strong { font-size: 0.86rem; }
.governance-workspace-grid small { color: #7b7579; font-size: 0.7rem; line-height: 1.4; }
.governance-workspace-grid em { color: #65013e; font-size: 0.69rem; font-style: normal; font-weight: 700; }
.governance-report-strip { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px 22px; }
.governance-report-strip h2 { margin: 0; font-size: 1rem; }
.governance-report-strip nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.governance-report-strip nav a { padding: 7px 11px; border: 1px solid #dcd8d5; border-radius: 6px; color: #5e575c; font-size: 0.72rem; font-weight: 700; text-decoration: none; }
.governance-report-strip nav a:hover { border-color: #c2aeb8; background: #faf5f8; color: #65013e; }

@media (max-width: 1199.98px) {
  .governance-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .governance-grid { grid-template-columns: 1fr; }
}

@media (max-width: 991.98px) {
  .governance-hero { grid-template-columns: 1fr; padding: 28px; }
  .governance-pulse { max-width: 440px; }
  .governance-workspace-grid { grid-template-columns: 1fr; }
  .governance-report-strip { align-items: flex-start; flex-direction: column; }
  .governance-report-strip nav { justify-content: flex-start; }
}

@media (max-width: 575.98px) {
  .governance-centre { gap: 13px; }
  .governance-hero { padding: 22px 18px; }
  .governance-pulse { align-items: flex-start; flex-direction: column; }
  .governance-metrics { grid-template-columns: 1fr; }
  .governance-risk-row { grid-template-columns: 38px minmax(0, 1fr) auto; }
  .governance-risk-action { grid-column: 2 / -1; }
  .governance-severity { grid-column: 3; grid-row: 1; }
  .governance-workspaces { padding: 3px 14px 14px; }
  .governance-report-strip { padding: 18px 15px; }
}

.entra-create-panel .panel-header {
  align-items: center;
}

.entra-create-form {
  display: grid;
  grid-template-columns: minmax(240px, .8fr) minmax(300px, 1.2fr);
  gap: 16px 20px;
  padding: 18px;
}

.entra-create-form > .text-danger,
.entra-create-confirm,
.entra-create-actions {
  grid-column: 1 / -1;
}

.entra-create-confirm {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 12px 14px;
  border: 1px solid #e4deda;
  border-radius: 8px;
  background: #faf8f7;
  color: #4e454a;
  font-size: .8rem;
}

.entra-create-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.entra-create-actions small {
  color: #786f74;
}

.entra-created-account > div {
  display: grid;
  gap: 5px;
}

.entra-created-account code {
  user-select: all;
}

.entra-temporary-password {
  padding: 3px 6px;
  border: 1px solid #95cfb9;
  border-radius: 5px;
  background: #fff;
  color: #124f3c;
  font-size: .9rem;
  letter-spacing: .035em;
}

@media (max-width: 760px) {
  .entra-create-form {
    grid-template-columns: 1fr;
  }

  .entra-create-actions {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Settings hub */
.settings-heading { margin-bottom: 18px; }
.settings-heading > div { max-width: 760px; }
.settings-health {
  display: grid;
  grid-template-columns: minmax(190px, .7fr) minmax(0, 2fr);
  align-items: center;
  gap: 20px;
  margin-bottom: 18px;
  padding: 20px 22px;
  border: 1px solid #d9d7d3;
  border-radius: 10px;
  background: linear-gradient(135deg, #fff 0%, #faf6f8 100%);
  box-shadow: 0 2px 7px rgb(45 34 40 / 7%);
}
.settings-health h2,
.settings-card h2 { margin: 2px 0 0; font-size: 1.05rem; }
.settings-eyebrow { color: #b44332; font-size: .68rem; font-weight: 780; letter-spacing: .08em; text-transform: uppercase; }
.settings-health-items { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.settings-health-item {
  display: grid;
  gap: 4px;
  min-height: 68px;
  padding: 12px 14px;
  border: 1px solid #e2dddf;
  border-radius: 8px;
  background: #fff;
  color: #1b2435;
  text-decoration: none;
}
.settings-health-item:hover { border-color: #c9aab9; color: #66023c; }
.settings-health-item span { color: #746b71; font-size: .7rem; font-weight: 650; }
.settings-health-item strong { font-size: .82rem; }
.settings-health-item strong.is-ready { color: #1b7657; }
.settings-health-item strong.is-attention { color: #ad4b2d; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.settings-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-content: start;
  gap: 0 14px;
  overflow: hidden;
  border: 1px solid #d9d7d3;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 7px rgb(45 34 40 / 7%);
}
.settings-card-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin: 18px 0 0 18px;
  border-radius: 9px;
  background: #f8eaf1;
  color: #720342;
}
.settings-card-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.settings-card-copy { min-height: 112px; padding: 18px 20px 14px 0; }
.settings-card-copy p { margin: 8px 0 0; color: #716970; font-size: .8rem; line-height: 1.45; }
.settings-link-list { grid-column: 1 / -1; display: grid; border-top: 1px solid #e8e4e5; }
.settings-link-list a {
  position: relative;
  display: grid;
  gap: 2px;
  padding: 12px 44px 12px 18px;
  border-bottom: 1px solid #eee9eb;
  color: #1a2334;
  text-decoration: none;
}
.settings-link-list a:last-child { border-bottom: 0; }
.settings-link-list a::after { position: absolute; top: 50%; right: 18px; content: "\2192"; color: #a4969e; transform: translateY(-50%); }
.settings-link-list a:hover { background: #fff8f5; color: #8f3023; }
.settings-link-list a span { font-size: .82rem; font-weight: 720; }
.settings-link-list a small { color: #7b7378; font-size: .7rem; }

@media (max-width: 991.98px) {
  .settings-health { grid-template-columns: 1fr; }
  .settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
  .settings-health { padding: 17px; }
  .settings-health-items { grid-template-columns: 1fr; }
  .settings-card { grid-template-columns: 42px minmax(0, 1fr); }
  .settings-card-icon { margin-left: 14px; }
  .settings-card-copy { padding-right: 14px; }
}

/* Policy administration */
.policy-admin-heading { align-items: flex-end; }
.policy-back-link { color: #746c71; font-size: .78rem; font-weight: 700; text-decoration: none; }
.policy-back-link:hover { color: var(--podium-primary); }
.policy-heading-actions { justify-content: flex-end; }
.policy-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.policy-summary-grid article { display: grid; min-height: 112px; padding: 16px 18px; border: 1px solid #ddd9d6; border-radius: 9px; background: #fff; box-shadow: 0 2px 6px rgb(45 34 40 / 7%); }
.policy-summary-grid article:first-child { border-top: 3px solid var(--podium-primary); }
.policy-summary-grid span { color: #746c71; font-size: .68rem; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.policy-summary-grid strong { margin-top: 4px; overflow: hidden; color: #211a1e; font-size: 1.35rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.policy-summary-grid small { align-self: end; margin-top: 8px; color: #857c81; font-size: .7rem; }
.policy-admin-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px); align-items: start; gap: 18px; }
.policy-section-heading { align-items: flex-start; padding-bottom: 15px; }
.policy-section-heading h2 { margin: 0; font-size: 1.08rem; }
.policy-section-heading p:not(.policy-section-kicker) { margin: 5px 0 0; color: #746c71; font-size: .76rem; }
.policy-section-kicker { margin: 0 0 3px; color: var(--podium-primary); font-size: .64rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.policy-count-pill,
.policy-current-pill { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 999px; background: #f0edeb; color: #625a5f; font-size: .67rem; font-weight: 750; white-space: nowrap; }
.policy-current-pill { background: #fff0eb; color: #a43b27; }
.policy-version-list { display: grid; gap: 14px; padding-top: 4px; }
.policy-version-card { overflow: visible; border: 1px solid #e2dedb; border-radius: 9px; background: #fff; }
.policy-version-card.is-current { border-left: 4px solid var(--podium-primary); }
.policy-version-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 16px; }
.policy-version-header h3 { margin: 0; font-size: 1rem; }
.policy-version-header p { margin: 5px 0 0; color: #847b80; font-size: .7rem; }
.policy-version-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.policy-version-actions form { margin: 0; }
.policy-version-metadata { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border-top: 1px solid #ece8e5; border-bottom: 1px solid #ece8e5; background: #faf9f8; }
.policy-version-metadata > div { min-width: 0; padding: 12px 16px; border-right: 1px solid #ece8e5; }
.policy-version-metadata > div:last-child { border-right: 0; }
.policy-version-metadata dt { color: #847b80; font-size: .64rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.policy-version-metadata dd { margin: 3px 0 0; color: #292126; font-size: .78rem; font-weight: 650; }
.policy-approval-note { display: grid; grid-template-columns: minmax(100px, .2fr) 1fr; gap: 12px; margin: 14px 16px 0; padding: 11px 12px; border-radius: 7px; background: #fff8e8; color: #695522; font-size: .74rem; }
.policy-disclosure { margin-top: 12px; border-top: 1px solid #ece8e5; }
.policy-disclosure > summary,
.policy-published-preview > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 16px; color: #4e454a; cursor: pointer; font-size: .75rem; font-weight: 750; list-style: none; }
.policy-disclosure > summary::-webkit-details-marker,
.policy-published-preview > summary::-webkit-details-marker,
.policy-rule-builder > summary::-webkit-details-marker,
.policy-action-menu > summary::-webkit-details-marker { display: none; }
.policy-disclosure > summary::after,
.policy-rule-builder > summary::after,
.policy-published-preview > summary::after { content: "+"; color: var(--podium-primary); font-size: 1.1rem; }
.policy-disclosure[open] > summary::after,
.policy-rule-builder[open] > summary::after,
.policy-published-preview[open] > summary::after { content: "−"; }
.policy-disclosure > summary span:last-child { color: #887f84; font-size: .68rem; font-weight: 650; }
.policy-disclosure-content { padding: 4px 16px 16px; }
.policy-attachment-list { display: grid; gap: 7px; margin-bottom: 14px; }
.policy-attachment-list > div { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 11px; border: 1px solid #e6e2df; border-radius: 7px; background: #faf9f8; font-size: .75rem; }
.policy-attachment-list > div > div { display: flex; gap: 10px; }
.policy-file-icon { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 6px; background: #fff0eb; color: var(--podium-primary); }
.policy-attachment-form { display: grid; gap: 10px; max-width: 720px; margin-bottom: 8px; }
.policy-attachment-submit { justify-self: start; }
.policy-audience-panel { position: sticky; top: 88px; }
.policy-audience-default { display: flex; align-items: flex-start; gap: 11px; margin: 4px 0 16px; padding: 13px; border: 1px solid #cfe5dc; border-radius: 8px; background: #eff9f5; }
.policy-audience-default > span { display: grid; flex: 0 0 auto; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #2f8e70; color: #fff; font-size: .72rem; }
.policy-audience-default strong { display: block; font-size: .8rem; }
.policy-audience-default p { margin: 3px 0 0; color: #557168; font-size: .7rem; }
.policy-rule-list { display: grid; gap: 8px; margin: 4px 0 16px; }
.policy-rule-list > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px; border: 1px solid #e3dfdc; border-radius: 7px; font-size: .74rem; }
.policy-rule-builder { border-top: 1px solid #e8e4e1; }
.policy-rule-builder > summary { display: flex; justify-content: space-between; padding: 14px 0; color: #4f474c; cursor: pointer; font-size: .78rem; font-weight: 750; list-style: none; }
.policy-rule-builder form { display: grid; gap: 11px; padding-bottom: 4px; }
.policy-action-menu { position: relative; }
.policy-action-menu > summary { list-style: none; }
.policy-action-menu > div { position: absolute; z-index: 20; top: calc(100% + 5px); right: 0; display: grid; min-width: 155px; padding: 6px; border: 1px solid #ded9d6; border-radius: 7px; background: #fff; box-shadow: 0 8px 24px rgb(45 34 40 / 16%); }
.policy-action-menu a,
.policy-action-menu button { display: block; width: 100%; padding: 8px 9px; border: 0; border-radius: 5px; background: transparent; color: #423a3f; font-size: .73rem; text-align: left; text-decoration: none; }
.policy-action-menu a:hover,
.policy-action-menu button:hover { background: #f5f2f1; }
.policy-action-menu .policy-action-danger { color: #b33c31; }
.policy-empty-state { margin-top: 10px; }
.policy-published-preview { padding: 0; }
.policy-published-preview > summary { padding: 17px 20px; }
.policy-published-preview > summary > span { display: grid; }
.policy-published-preview > summary small { margin-top: 3px; color: #837a7f; font-weight: 500; }
.policy-published-preview > summary > span:last-child { display: block; color: var(--podium-primary); font-size: .72rem; }
.policy-published-preview .policy-body { margin: 0 20px 20px; }

@media (max-width: 1199.98px) {
  .policy-admin-layout { grid-template-columns: 1fr; }
  .policy-audience-panel { position: static; }
}

@media (max-width: 991.98px) {
  .policy-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-version-header { flex-direction: column; }
  .policy-version-actions { justify-content: flex-start; }
  .policy-attachment-form { grid-template-columns: 1fr; }
}

@media (max-width: 575.98px) {
  .policy-admin-heading { align-items: flex-start; }
  .policy-heading-actions { justify-content: flex-start; width: 100%; }
  .policy-summary-grid,
  .policy-version-metadata { grid-template-columns: 1fr; }
  .policy-version-metadata > div { border-right: 0; border-bottom: 1px solid #ece8e5; }
  .policy-version-metadata > div:last-child { border-bottom: 0; }
  .policy-approval-note { grid-template-columns: 1fr; }
  .policy-attachment-list > div { grid-template-columns: auto 1fr; }
  .policy-attachment-list > div > div { grid-column: 2; }
}
/* Cross-application workforce identity centre */
.identity-centre-heading { align-items: flex-end; }
.identity-heading-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.identity-heading-actions form { margin: 0; }
.identity-connection-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 14px;
  padding: 13px 16px;
  border: 1px solid var(--podium-border);
  border-radius: 4px;
  background: var(--podium-surface);
  color: var(--podium-muted);
  font-size: .76rem;
  box-shadow: var(--podium-shadow-soft);
}
.identity-connection-strip > div { display: grid; align-content: start; gap: 3px; min-width: 0; }
.identity-connection-strip small { display: block; overflow-wrap: anywhere; }
.identity-connection-strip strong { color: var(--podium-ink); }
.identity-connection-strip.is-connected,
.identity-connection-strip.is-success { border-left: 3px solid #2e9671; background: var(--podium-surface); }
.identity-connection-strip.is-warning { border-left: 3px solid #c7831a; background: var(--podium-surface); }
.identity-connection-strip.is-warning .identity-health-dot { background: #c7831a; box-shadow: 0 0 0 4px #fff0cf; }
.identity-centre-tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  margin: 0 0 16px;
  padding: 5px;
  border: 1px solid var(--podium-border);
  border-radius: 4px;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
  scrollbar-width: thin;
}
.identity-centre-tabs a {
  flex: 0 0 auto;
  padding: 9px 13px;
  border-radius: 3px;
  color: var(--podium-muted);
  font-size: .74rem;
  font-weight: 720;
  text-decoration: none;
}
.identity-centre-tabs a:hover { background: var(--podium-primary-soft); color: var(--podium-primary-dark); }
.identity-centre-tabs a.is-active {
  background: var(--podium-primary-soft);
  color: var(--podium-primary-dark);
  box-shadow: inset 0 -2px 0 var(--podium-primary);
}
.identity-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.identity-summary-grid article {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 15px 16px;
  border: 1px solid var(--podium-border);
  border-radius: 4px;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}
.identity-summary-grid article > span { color: var(--podium-muted); font-size: .67rem; font-weight: 750; text-transform: uppercase; }
.identity-summary-grid article > strong { color: var(--podium-ink); font-size: 1.55rem; line-height: 1.1; }
.identity-summary-grid article > small { color: var(--podium-muted); font-size: .65rem; line-height: 1.35; }
.identity-summary-grid article.is-success { border-top: 3px solid #2e9671; }
.identity-summary-grid article.is-warning { border-top: 3px solid #c7831a; }
.identity-dashboard {
  display: grid;
  grid-template-columns: minmax(520px, 1.45fr) minmax(340px, .55fr);
  gap: 14px;
  align-items: start;
}
.identity-attention-panel { overflow: hidden; }
.identity-attention-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 22px 24px 18px;
  border-bottom: 1px solid var(--podium-border);
}
.identity-section-label {
  display: block;
  margin-bottom: 4px;
  color: var(--podium-primary);
  font-size: .61rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.identity-attention-heading h2,
.identity-find-employee h2,
.identity-platform-heading h2 { margin: 0; color: var(--podium-ink); font-size: 1rem; }
.identity-attention-heading p,
.identity-find-employee > p { margin: 4px 0 0; color: var(--podium-muted); font-size: .7rem; }
.identity-attention-total {
  display: grid;
  flex: 0 0 auto;
  min-width: 76px;
  place-items: center;
  padding: 10px 14px;
  border-radius: 5px;
  background: #eef7f3;
  color: #21694f;
}
.identity-attention-total.has-attention { background: #fff3dc; color: #945e07; }
.identity-attention-total strong { font-size: 1.45rem; line-height: 1; }
.identity-attention-total span { margin-top: 3px; font-size: .58rem; font-weight: 750; text-transform: uppercase; }
.identity-action-queue { display: grid; }
.identity-action-queue > a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  min-height: 66px;
  padding: 11px 20px;
  border-bottom: 1px solid var(--podium-border);
  color: inherit;
  text-decoration: none;
}
.identity-action-queue > a:last-child { border-bottom: 0; }
.identity-action-queue > a:hover { background: var(--podium-primary-soft); }
.identity-action-icon {
  display: grid;
  width: 29px;
  height: 29px;
  place-items: center;
  border-radius: 50%;
  background: #f1edf0;
  color: var(--podium-muted);
  font-size: .58rem;
  font-weight: 800;
}
.identity-action-queue > a:hover .identity-action-icon { background: #e8dbe4; color: var(--podium-primary-dark); }
.identity-action-queue > a > span:nth-child(2) { display: grid; gap: 2px; min-width: 0; }
.identity-action-queue strong { color: var(--podium-ink); font-size: .73rem; }
.identity-action-queue small { color: var(--podium-muted); font-size: .63rem; }
.identity-action-queue b {
  display: grid;
  min-width: 31px;
  height: 31px;
  place-items: center;
  border-radius: 50%;
  background: #f4f1f3;
  color: var(--podium-ink);
  font-size: .72rem;
}
.identity-action-queue b:not(:empty) { font-variant-numeric: tabular-nums; }
.identity-dashboard-sidebar { display: grid; gap: 14px; }
.identity-find-employee { padding: 20px; }
.identity-dashboard-person-search { display: grid; gap: 8px; margin-top: 17px; }
.identity-dashboard-person-search label { color: var(--podium-muted); font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.identity-dashboard-person-search .btn { justify-self: start; margin-top: 3px; }
.identity-platform-card { overflow: hidden; }
.identity-platform-heading {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 16px 18px 13px;
  border-bottom: 1px solid var(--podium-border);
}
.identity-platform-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.identity-platform-facts > div { display: grid; gap: 2px; min-width: 0; padding: 12px 18px; border-bottom: 1px solid var(--podium-border); }
.identity-platform-facts > div:nth-child(odd) { border-right: 1px solid var(--podium-border); }
.identity-platform-facts dt { color: var(--podium-muted); font-size: .58rem; font-weight: 750; text-transform: uppercase; }
.identity-platform-facts dd { overflow-wrap: anywhere; margin: 0; color: var(--podium-ink); font-size: .68rem; }
.identity-platform-links { display: flex; flex-wrap: wrap; gap: 15px; padding: 11px 18px; }
.identity-platform-links a { font-size: .65rem; font-weight: 750; }
.identity-dashboard-footnote {
  display: flex;
  flex-wrap: wrap;
  gap: 9px 24px;
  margin-top: 12px;
  padding: 0 3px;
  color: var(--podium-muted);
  font-size: .62rem;
}
.identity-dashboard-footnote strong { color: var(--podium-ink); }
.identity-catalog-grid,
.identity-lifecycle-grid { display: grid; gap: 14px; }
.identity-catalog-card { min-width: 0; }
.identity-applications-panel { margin-top: 14px; overflow: hidden; }
.identity-app-register { display: grid; }
.identity-app-register > article {
  display: grid;
  grid-template-columns: 42px minmax(240px, 1fr) 72px 82px 90px auto;
  gap: 16px;
  align-items: center;
  min-width: 0;
  padding: 13px 18px;
  border-top: 1px solid var(--podium-border);
}
.identity-app-register > article:hover { background: var(--podium-primary-soft); }
.identity-app-mark {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 4px;
  background: var(--podium-primary-soft);
  color: var(--podium-primary-dark);
  font-weight: 800;
}
.identity-app-name { display: grid; gap: 2px; min-width: 0; }
.identity-app-name strong { color: var(--podium-ink); font-size: .79rem; }
.identity-app-name small { overflow: hidden; color: var(--podium-muted); font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.identity-app-role-count,
.identity-app-access-count { display: grid; gap: 1px; }
.identity-app-role-count strong,
.identity-app-access-count strong { color: var(--podium-ink); font-size: .9rem; line-height: 1.1; }
.identity-app-role-count span,
.identity-app-access-count span { color: var(--podium-muted); font-size: .58rem; font-weight: 700; text-transform: uppercase; }
.identity-app-access-count.has-attention strong { color: #aa6900; }
.identity-health-dot { width: 9px; height: 9px; margin-top: 4px; border-radius: 50%; background: #2e9671; box-shadow: 0 0 0 4px #e3f5ee; }
.identity-app-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #ebe7e9; padding-top: 12px; }
.identity-app-metrics > span { display: grid; gap: 2px; }
.identity-app-metrics strong { font-size: .95rem; }
.identity-app-metrics span { color: #887f85; font-size: .61rem; text-transform: uppercase; }
.identity-overview-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(310px, .65fr); gap: 14px; align-items: start; }
.identity-priority-list,
.identity-authority-list,
.identity-request-list,
.identity-role-list,
.identity-lifecycle-list { display: grid; margin: 0; padding: 0; list-style: none; }
.identity-priority-list li,
.identity-authority-list li,
.identity-lifecycle-list li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid #ece8ea; }
.identity-priority-list li:last-child,
.identity-authority-list li:last-child,
.identity-lifecycle-list li:last-child { border-bottom: 0; }
.identity-priority-list a { font-weight: 700; text-decoration: none; }
.identity-priority-list > a,
.identity-authority-list > div,
.identity-lifecycle-list > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 0;
  border-bottom: 1px solid #ece8ea;
}
.identity-priority-list > a:last-child,
.identity-authority-list > div:last-child,
.identity-lifecycle-list > div:last-child { border-bottom: 0; }
.identity-authority-list > div { display: grid; gap: 3px; }
.identity-priority-list span,
.identity-authority-list span,
.identity-lifecycle-list span { color: #7c747a; font-size: .7rem; }
.identity-request-layout { display: grid; grid-template-columns: minmax(440px, 1fr) minmax(0, 1fr); gap: 15px; align-items: start; }
.identity-request-layout.is-inbox { grid-template-columns: 1fr; }
.identity-inbox-intro { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 15px; padding: 18px 20px; border: 1px solid #e3dde2; border-radius: 10px; background: #fff; }
.identity-inbox-intro h2 { margin: 2px 0 4px; font-size: 1.08rem; }
.identity-inbox-intro > div:first-child > span { color: #716970; font-size: .74rem; }
.identity-inbox-metrics { display: flex; gap: 8px; }
.identity-inbox-metrics span { display: grid; min-width: 130px; gap: 2px; padding: 10px 12px; border-radius: 8px; background: #f6f2fb; color: #6d646b; font-size: .66rem; }
.identity-inbox-metrics strong { color: var(--podium-accent); font-size: 1rem; }
.identity-review-list { display: grid; }
.identity-review-list > article { display: grid; grid-template-columns: minmax(220px, 1fr) auto 130px minmax(420px, 1.5fr); gap: 14px; align-items: center; padding: 14px 18px; border-top: 1px solid var(--podium-border); }
.identity-review-person,
.identity-review-age { display: grid; gap: 2px; }
.identity-review-person strong { font-size: .76rem; }
.identity-review-person span,
.identity-review-age span { color: var(--podium-muted); font-size: .64rem; }
.identity-review-age strong { font-size: .7rem; }
.identity-review-actions { display: grid; gap: 7px; }
.identity-review-actions form { display: grid; grid-template-columns: minmax(160px, 1fr) 110px; gap: 7px; }
.identity-operations-alerts { margin-bottom: 15px; overflow: hidden; border: 1px solid #e3d9d9; border-radius: 10px; background: #fff; }
.identity-operations-heading { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 16px 18px; }
.identity-operations-heading h2 { margin: 2px 0 3px; font-size: 1rem; }
.identity-operations-heading span { color: var(--podium-muted); font-size: .68rem; }
.identity-operations-heading > strong { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; background: #fff0ec; color: #9b3c31; font-size: 1rem; }
.identity-operations-list { display: grid; }
.identity-operations-list > a { display: grid; grid-template-columns: 70px minmax(0, 1fr) 32px; gap: 12px; align-items: center; padding: 12px 18px; border-top: 1px solid #eee8e8; color: inherit; text-decoration: none; }
.identity-operations-list > a:hover { background: #fcf9f9; }
.identity-operations-list > a > span { color: #8f641b; font-size: .58rem; font-weight: 800; text-transform: uppercase; }
.identity-operations-list > a.is-critical > span { color: #a13d35; }
.identity-operations-list div { display: grid; gap: 2px; }
.identity-operations-list strong { font-size: .72rem; }
.identity-operations-list small { color: var(--podium-muted); font-size: .64rem; }
.identity-operations-list b { text-align: right; }
.identity-technical-handoff { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 15px; padding: 16px 18px; border: 1px solid #ded7e7; border-radius: 10px; background: linear-gradient(135deg, #fff 0%, #f7f3fc 100%); }
.identity-technical-handoff > div { display: grid; gap: 3px; }
.identity-technical-handoff h2 { margin: 0; font-size: 1rem; }
.identity-technical-handoff span { max-width: 850px; color: var(--podium-muted); font-size: .68rem; }
.identity-technical-handoff .btn { flex: 0 0 auto; }
.identity-request-builder { position: static; }
.identity-request-builder .app-form { padding: 18px; }
.identity-request-step { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; }
.identity-request-step > div { min-width: 0; }
.identity-step-number { display: grid; flex: 0 0 24px; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #eee7f8; color: var(--podium-accent); font-size: .63rem; font-weight: 800; }
.identity-fixed-employee { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border: 1px solid #ded7dc; border-radius: 7px; background: #faf8f9; font-size: .72rem; }
.identity-fixed-employee span { color: #786f75; }
.identity-current-access-strip { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 12px; border: 1px solid #dce9e4; border-radius: 8px; background: #f5fbf8; }
.identity-current-access-strip > div { display: grid; gap: 1px; margin-right: auto; }
.identity-current-access-strip > div strong { font-size: .7rem; }
.identity-current-access-strip > div span { color: #746c71; font-size: .61rem; }
.identity-access-matrix { display: grid; min-width: 0; gap: 10px; margin: 0; padding: 0; border: 0; }
.identity-access-matrix > legend { display: flex; gap: 10px; align-items: center; margin: 0 0 2px; color: #554c52; font-size: .72rem; font-weight: 700; }
.identity-package-picker { display: grid; gap: 9px; padding: 12px; border: 1px solid #e1dbe0; border-radius: 8px; background: #fcfafb; }
.identity-package-picker > div:first-child { display: grid; gap: 2px; }
.identity-package-picker strong { font-size: .7rem; }
.identity-package-picker span { color: #7d747a; font-size: .62rem; }
.identity-package-recommendation { display: grid; grid-template-columns: auto 1fr; gap: 2px 9px; align-items: center; padding: 10px 12px; border: 1px solid #bda9db; border-radius: 8px; background: #f6f1fc; color: #574d55; text-align: left; }
.identity-package-recommendation > span { grid-row: 1 / 3; padding: 4px 7px; border-radius: 999px; background: var(--podium-accent); color: #fff; font-size: .56rem; font-weight: 800; text-transform: uppercase; }
.identity-package-recommendation > strong { color: var(--podium-accent); font-size: .75rem; }
.identity-package-recommendation > small { color: #746a72; font-size: .62rem; }
.identity-package-recommendation:hover,
.identity-package-recommendation.is-active { background: #eee5f9; box-shadow: 0 0 0 2px rgb(101 71 194 / 12%); }
.identity-package-options { display: flex; flex-wrap: wrap; gap: 6px; }
.identity-package-options button,
.identity-application-picker button { border: 1px solid #dcd5da; border-radius: 999px; background: #fff; color: #5f565c; font-size: .65rem; font-weight: 700; }
.identity-package-options button { padding: 6px 10px; }
.identity-package-options button:hover,
.identity-package-options button.is-active,
.identity-application-picker button:hover,
.identity-application-picker button.is-active { border-color: #a98ad3; background: #f3ecfb; color: var(--podium-accent); }
.identity-application-picker { display: flex; gap: 6px; overflow-x: auto; padding: 2px 0 4px; }
.identity-application-picker button { display: flex; gap: 6px; align-items: center; min-width: max-content; padding: 7px 10px; }
.identity-application-picker button span { color: #8c8389; font-size: .58rem; }
.identity-access-selection-summary { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 9px 11px; border-radius: 7px; background: #f6f2fb; color: #655d64; font-size: .67rem; }
.identity-access-selection-summary strong { color: var(--podium-accent); font-size: .72rem; }
.identity-access-apps { display: grid; grid-template-columns: 1fr; gap: 10px; align-items: start; padding: 1px; }
.identity-access-app[hidden] { display: none; }
.identity-access-app { min-width: 0; overflow: hidden; border: 1px solid #e2dde0; border-radius: 8px; background: #fff; }
.identity-access-app > header { display: flex; justify-content: space-between; gap: 10px; padding: 10px 11px; border-bottom: 1px solid #ebe7e9; background: #faf8f9; }
.identity-access-app h3 { margin: 0; font-size: .78rem; }
.identity-access-app p { margin: 2px 0 0; color: #776f75; font-size: .62rem; line-height: 1.35; }
.identity-access-app > header > span { flex: 0 0 auto; color: #8a8187; font-size: .61rem; font-weight: 700; }
.identity-access-role-options { display: grid; }
.identity-access-role-option { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 8px; align-items: center; min-height: 45px; padding: 8px 11px; border-bottom: 1px solid #f0edef; cursor: pointer; }
.identity-access-role-option:last-child { border-bottom: 0; }
.identity-access-role-option:hover { background: #faf8fc; }
.identity-access-role-option:has(input:focus-visible) { outline: 2px solid var(--podium-accent); outline-offset: -2px; }
.identity-access-role-option:has(input:checked) { background: #f4effc; box-shadow: inset 3px 0 var(--podium-accent); }
.identity-access-role-option input { width: 16px; height: 16px; margin: 0; accent-color: var(--podium-accent); }
.identity-access-role-option > span { display: grid; gap: 1px; min-width: 0; }
.identity-access-role-option strong { color: #443c41; font-size: .69rem; }
.identity-access-role-option small { color: #827980; font-size: .6rem; }
.identity-access-role-option.is-privileged small { color: #8c5d16; font-weight: 700; }
.identity-request-reason { display: grid; gap: 12px; }
.identity-request-review { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 12px; border-top: 1px solid #e7e1e5; background: #fbf9fa; }
.identity-request-review > div { display: grid; gap: 2px; }
.identity-request-review strong { font-size: .72rem; }
.identity-request-review span { color: #746b71; font-size: .63rem; }
.identity-request-progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; margin: 10px 0; }
.identity-request-progress span { position: relative; padding-top: 9px; color: #91898e; font-size: .56rem; font-weight: 700; text-align: center; }
.identity-request-progress span::before { position: absolute; top: 0; right: 0; left: 0; height: 4px; border-radius: 999px; background: #e5e0e3; content: ""; }
.identity-request-progress span.is-complete { color: #267057; }
.identity-request-progress span.is-complete::before { background: #42a27f; }
.identity-request-progress span.is-current { color: #8c5b0b; }
.identity-request-progress span.is-current::before { background: #d99628; }
.identity-request-progress span.is-stopped { color: #9c4141; }
.identity-request-progress span.is-stopped::before { background: #d56b6b; }
.identity-request-list { gap: 11px; padding: 16px; }
.identity-request-list > li { padding: 14px; border: 1px solid #e3dfe1; border-radius: 8px; background: #fff; }
.identity-request-list > article { padding: 14px; border: 1px solid #e3dfe1; border-radius: 8px; background: #fff; }
.identity-request-list header { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.identity-request-list h3 { margin: 0; font-size: .84rem; }
.identity-request-list p { margin: 3px 0 0; color: #756d73; font-size: .7rem; }
.identity-decision-actions { display: flex; gap: 7px; align-items: center; margin-top: 11px; }
.identity-decision-actions input { flex: 1 1 220px; min-width: 100px; }
.identity-reconciliation-note { margin-top: 8px; padding: 8px 10px; border-radius: 6px; background: #f8f5f6; color: #6e656b; font-size: .69rem; }
.identity-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.identity-application-intro { display: flex; justify-content: space-between; gap: 20px; align-items: end; margin-bottom: 14px; padding: 16px 18px; border: 1px solid #ded8dc; border-radius: 9px; background: #fff; }
.identity-application-intro h2 { margin: 2px 0 3px; font-size: 1rem; }
.identity-application-intro > div:first-child > span { color: #756d72; font-size: .7rem; }
.identity-mapping-legend { display: flex; flex-wrap: wrap; gap: 10px; color: #70676d; font-size: .62rem; font-weight: 700; }
.identity-mapping-legend span { display: inline-flex; gap: 5px; align-items: center; }
.identity-mapping-legend i,
.identity-mapping-health i { width: 8px; height: 8px; border-radius: 50%; background: #a9a2a7; }
.identity-mapping-legend i.is-good,
.identity-mapping-health i.is-good { background: #36a17b; }
.identity-mapping-legend i.is-warning,
.identity-mapping-health i.is-warning { background: #d89529; }
.identity-catalog-card { padding-bottom: 8px; }
.identity-mapping-health { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #ece8ea; border-bottom: 1px solid #ece8ea; }
.identity-mapping-health > span { display: grid; grid-template-columns: auto 1fr; gap: 2px 7px; align-items: center; padding: 10px 12px; border-right: 1px solid #ece8ea; }
.identity-mapping-health > span:last-child { border-right: 0; }
.identity-mapping-health strong { font-size: .64rem; }
.identity-mapping-health small { grid-column: 2; color: #7b7278; font-size: .58rem; }
.identity-application-details summary { padding: 11px 17px; color: var(--podium-accent); cursor: pointer; font-size: .68rem; font-weight: 750; }
.identity-role-tags { display: flex; flex-wrap: wrap; gap: 5px; justify-content: end; }
.identity-application-actions { display: flex; gap: 14px; padding: 11px 17px 5px; border-top: 1px solid #ece8ea; }
.identity-application-actions a { font-size: .66rem; font-weight: 700; text-decoration: none; }
.identity-role-list li { display: grid; grid-template-columns: minmax(150px, .7fr) minmax(0, 1.3fr) auto; gap: 12px; align-items: center; padding: 10px 18px; border-top: 1px solid #ece8ea; font-size: .72rem; }
.identity-role-list > div { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 10px 18px; border-top: 1px solid #ece8ea; font-size: .72rem; }
.identity-role-list > div > span:first-child { display: grid; gap: 2px; min-width: 0; }
.identity-role-list > div small { color: #776f75; overflow-wrap: anywhere; }
.identity-role-list code { overflow: hidden; color: #665c63; text-overflow: ellipsis; white-space: nowrap; }
.identity-lifecycle-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.identity-lifecycle-guide { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
.identity-lifecycle-guide article { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: center; padding: 13px; border: 1px solid #ded8dc; border-radius: 8px; background: #fff; }
.identity-lifecycle-guide article > span { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; background: #eee7f8; color: var(--podium-accent); font-size: .6rem; font-weight: 800; }
.identity-lifecycle-guide article > div { display: grid; gap: 2px; }
.identity-lifecycle-guide strong { font-size: .72rem; }
.identity-lifecycle-guide small { color: #756d72; font-size: .6rem; }
.identity-lifecycle-guide a { grid-column: 2; font-size: .63rem; font-weight: 700; text-decoration: none; }
.identity-lifecycle-summary { display: flex; gap: 8px; padding: 12px 17px; border-bottom: 1px solid var(--podium-border); }
.identity-lifecycle-summary span { display: flex; gap: 5px; align-items: baseline; padding: 7px 10px; border-radius: 7px; background: #f7f4f8; color: var(--podium-muted); font-size: .63rem; }
.identity-lifecycle-summary strong { color: var(--podium-ink); font-size: .85rem; }
.identity-lifecycle-action-list { display: grid; }
.identity-lifecycle-action-list article { display: grid; grid-template-columns: 76px minmax(180px, .8fr) minmax(260px, 1.2fr) 100px auto; gap: 14px; align-items: center; padding: 13px 17px; border-top: 1px solid var(--podium-border); }
.identity-lifecycle-action-list article:first-child { border-top: 0; }
.identity-lifecycle-action-list article > div { display: grid; min-width: 0; gap: 2px; }
.identity-lifecycle-action-list article > div > span { color: var(--podium-muted); font-size: .57rem; font-weight: 750; text-transform: uppercase; }
.identity-lifecycle-action-list article strong { overflow: hidden; font-size: .7rem; text-overflow: ellipsis; white-space: nowrap; }
.identity-lifecycle-action-list article small { overflow: hidden; color: var(--podium-muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.identity-lifecycle-action-list time { color: var(--podium-muted); font-size: .65rem; }
.identity-lifecycle-priority { padding: 5px 7px; border-radius: 999px; background: #f1eef0; color: var(--podium-muted); font-size: .57rem; font-weight: 800; text-align: center; text-transform: uppercase; }
.identity-lifecycle-priority.is-due-soon { background: #fff3d9; color: #8a5b08; }
.identity-lifecycle-priority.is-urgent { background: #ffebe8; color: #a33e34; }
.identity-cleanup-planner { display: grid; grid-template-columns: minmax(300px, 1.5fr) repeat(3, minmax(130px, .5fr)); gap: 10px; margin-bottom: 14px; }
.identity-cleanup-planner > div,
.identity-cleanup-planner > a { padding: 14px 16px; border: 1px solid #ded8dc; border-radius: 8px; background: #fff; }
.identity-cleanup-planner h2 { margin: 2px 0 3px; font-size: .96rem; }
.identity-cleanup-planner > div > span { color: #746c71; font-size: .66rem; }
.identity-cleanup-planner > a { display: grid; gap: 2px; color: inherit; text-decoration: none; }
.identity-cleanup-planner > a:hover { border-color: #b99cd3; background: #fcf9ff; }
.identity-cleanup-planner > a strong { color: var(--podium-accent); font-size: 1.25rem; }
.identity-cleanup-planner > a span { font-size: .66rem; font-weight: 700; }
.identity-cleanup-planner > a small { color: #7a7277; font-size: .58rem; }
.identity-lifecycle-grid .work-panel { min-width: 0; }
.identity-lifecycle-list { padding: 4px 17px 14px; }
.identity-people-panel { overflow: hidden; }
.identity-people-heading { padding: 18px 20px 14px; }
.identity-people-heading > div { display: grid; gap: 3px; }
.identity-people-heading > span {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #f2eef0;
  color: #62585e;
  font-size: .67rem;
  font-weight: 750;
}
.identity-people-table-wrap { scrollbar-color: #c9c2c6 transparent; }
.entra-people-table { min-width: 1120px; table-layout: fixed; }
.entra-people-table th:nth-child(1) { width: 25%; }
.entra-people-table th:nth-child(2) { width: 21%; }
.entra-people-table th:nth-child(3) { width: 23%; }
.entra-people-table th:nth-child(4) { width: 16%; }
.entra-people-table th:nth-child(5) { width: 11%; }
.entra-people-table th:nth-child(6) { width: 74px; }
.entra-people-table thead th {
  padding: 11px 14px;
  border-bottom: 1px solid #ddd8db;
  background: #faf8f9;
  color: #746a70;
  font-size: .66rem;
  letter-spacing: .035em;
  white-space: nowrap;
}
.entra-people-table tbody td {
  padding: 13px 14px;
  border-bottom-color: #ece8ea;
  color: #30292d;
  vertical-align: middle;
}
.entra-people-table tbody tr:hover { background: #fcfafb; }
.entra-people-table tbody tr:last-child td { border-bottom: 0; }
.identity-person-cell { display: flex; align-items: center; gap: 10px; min-width: 0; }
.identity-person-avatar {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: #f0e6ec;
  color: var(--podium-primary);
  font-size: .68rem;
  font-weight: 800;
}
.identity-person-copy,
.identity-account-cell { display: grid; gap: 4px; min-width: 0; justify-items: start; }
.identity-person-copy a {
  overflow: hidden;
  max-width: 100%;
  color: #2c2529;
  font-size: .78rem;
  font-weight: 750;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.identity-person-copy a:hover { color: var(--podium-primary); text-decoration: underline; }
.identity-person-copy small,
.identity-account-cell small {
  display: block;
  overflow: hidden;
  max-width: 100%;
  color: #7c7379;
  font-size: .66rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.entra-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 22px;
  padding: 3px 8px;
  border: 1px solid #dcd6da;
  border-radius: 999px;
  background: #f6f4f5;
  color: #635a60;
  font-size: .62rem;
  font-weight: 750;
  line-height: 1;
  white-space: nowrap;
}
.entra-pill.is-good { border-color: #c4e1d5; background: #eaf7f1; color: #21694f; }
.entra-pill.is-warning { border-color: #ecd8ab; background: #fff6e2; color: #8c5b0b; }
.entra-pill.is-missing { border-color: #ddd8db; background: #f5f3f4; color: #6f666c; }
.entra-pill.is-disabled { border-color: #ecc7c7; background: #fceeee; color: #9c4141; }
.entra-app-list { display: flex; flex-wrap: wrap; gap: 5px; }
.entra-app-list > span:not(.identity-empty-value) {
  display: inline-flex;
  padding: 4px 7px;
  border: 1px solid #ddd8db;
  border-radius: 999px;
  background: #f8f6f7;
  color: #5f565c;
  font-size: .61rem;
  font-weight: 700;
}
.identity-empty-value { color: #8a8187; font-size: .68rem; }
.identity-row-actions { text-align: right; }
.identity-row-actions form { display: inline-flex; }
.identity-row-actions .btn { font-size: .66rem; font-weight: 700; }
.identity-person-switcher {
  display: grid;
  grid-template-columns: minmax(190px, .55fr) minmax(420px, 1.45fr) auto;
  gap: 14px;
  align-items: center;
  margin-bottom: 10px;
  padding: 10px 12px;
  border: 1px solid var(--podium-border);
  border-radius: 4px;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}
.identity-person-switcher-copy { display: grid; gap: 2px; min-width: 0; }
.identity-person-switcher-copy strong { color: var(--podium-ink); font-size: .72rem; }
.identity-person-switcher-copy span { color: var(--podium-muted); font-size: .63rem; }
.identity-person-search { display: grid; grid-template-columns: minmax(180px, .75fr) minmax(220px, 1fr) auto; gap: 7px; align-items: end; }
.identity-person-search label { grid-column: 1 / -1; color: var(--podium-muted); font-size: .67rem; font-weight: 750; text-transform: uppercase; }
.identity-overview-return { color: var(--podium-primary-dark); font-size: .65rem; font-weight: 750; white-space: nowrap; }
.identity-employee-workspace {
  overflow: hidden;
  margin-bottom: 15px;
  border: 1px solid var(--podium-border);
  border-radius: 5px;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}
.identity-workspace-subnav {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: center;
  padding: 11px 16px;
  border-bottom: 1px solid var(--podium-border);
}
.identity-workspace-subnav > div { display: grid; gap: 2px; }
.identity-workspace-subnav strong { color: var(--podium-ink); font-size: .72rem; }
.identity-workspace-subnav span { color: var(--podium-muted); font-size: .63rem; }
.identity-workspace-status { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--podium-border); background: #faf8f9; }
.identity-workspace-status > div { display: grid; gap: 3px; min-width: 0; padding: 13px 17px; border-right: 1px solid var(--podium-border); }
.identity-workspace-status > div:last-child { border-right: 0; }
.identity-workspace-status span { color: var(--podium-muted); font-size: .61rem; font-weight: 750; text-transform: uppercase; }
.identity-workspace-status strong { color: var(--podium-ink); font-size: .78rem; }
.identity-workspace-status strong.is-good { color: #21694f; }
.identity-workspace-status strong.is-warning { color: #9a6205; }
.identity-workspace-status strong.is-disabled { color: #9c4141; }
.identity-workspace-status small { overflow: hidden; color: var(--podium-muted); font-size: .63rem; text-overflow: ellipsis; white-space: nowrap; }
.identity-workflow-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 16px; }
.identity-workflow-grid > article { display: grid; grid-template-rows: auto 1fr auto; gap: 13px; min-width: 0; padding: 15px; border: 1px solid var(--podium-border); border-radius: 4px; background: #fff; }
.identity-workflow-grid > article.is-recommended { border-color: #d9bfd0; box-shadow: inset 0 3px var(--podium-primary); }
.identity-workflow-grid > article.is-critical { border-color: #e2bcbc; box-shadow: inset 0 3px #b74747; }
.identity-workflow-grid article > header { display: grid; grid-template-columns: auto 1fr; gap: 9px; }
.identity-workflow-grid article > header > span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: var(--podium-primary-soft); color: var(--podium-primary-dark); font-size: .62rem; font-weight: 800; }
.identity-workflow-grid h3 { margin: 0; font-size: .82rem; }
.identity-workflow-grid header p { margin: 3px 0 0; color: var(--podium-muted); font-size: .65rem; line-height: 1.4; }
.identity-workflow-grid ol { display: grid; align-content: start; gap: 0; margin: 0; padding: 0; list-style: none; }
.identity-workflow-grid li { position: relative; display: flex; justify-content: space-between; gap: 9px; padding: 8px 0 8px 17px; border-bottom: 1px solid #efebed; color: var(--podium-muted); font-size: .65rem; }
.identity-workflow-grid li:last-child { border-bottom: 0; }
.identity-workflow-grid li::before { position: absolute; top: 12px; left: 1px; width: 7px; height: 7px; border-radius: 50%; background: #cbc5c8; content: ""; }
.identity-workflow-grid li.is-complete::before { background: #2e9671; }
.identity-workflow-grid li.is-current::before { background: #c7831a; box-shadow: 0 0 0 3px #fff0cf; }
.identity-workflow-grid li strong { color: var(--podium-ink); font-size: .62rem; text-align: right; }
.identity-workflow-grid > article > .btn { justify-self: start; }
.identity-workspace-safety { display: flex; gap: 13px; padding: 12px 16px; border-top: 1px solid var(--podium-border); background: #f8f5f6; color: var(--podium-muted); font-size: .66rem; }
.identity-workspace-safety strong { flex: 0 0 auto; color: var(--podium-ink); }
.identity-employee-home {
  overflow: hidden;
  margin-bottom: 16px;
  border: 1px solid var(--podium-border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--podium-shadow-soft);
}
.identity-employee-health {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 18px 20px;
  border-bottom: 1px solid var(--podium-border);
  background: #f3faf7;
}
.identity-employee-health.needs-attention { background: #fff8e9; }
.identity-health-mark {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #dff3ea;
  color: #21694f;
  font-size: 1rem;
  font-weight: 850;
}
.identity-employee-health.needs-attention .identity-health-mark { background: #ffe8b9; color: #875706; }
.identity-employee-health > div:nth-child(2) { display: grid; gap: 3px; }
.identity-employee-health span,
.identity-card-heading span {
  color: var(--podium-primary-dark);
  font-size: .61rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.identity-employee-health h2 { margin: 0; font-size: 1rem; }
.identity-employee-health p { margin: 0; color: var(--podium-muted); font-size: .69rem; }
.identity-employee-home-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .75fr); }
.identity-current-access,
.identity-employee-facts { min-width: 0; padding: 18px 20px; }
.identity-current-access { border-right: 1px solid var(--podium-border); }
.identity-card-heading { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 14px; }
.identity-card-heading > div { display: grid; gap: 2px; }
.identity-card-heading h2 { margin: 0; font-size: .9rem; }
.identity-card-heading > a { font-size: .66rem; font-weight: 750; }
.identity-current-role-list { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.identity-current-role-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 11px; align-items: center; padding: 10px 0; border-top: 1px solid #eee9ec; }
.identity-current-role-list li:first-child { border-top: 0; }
.identity-app-monogram { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 7px; background: var(--podium-primary-soft); color: var(--podium-primary-dark); font-weight: 850; }
.identity-current-role-list li > div { display: grid; gap: 2px; }
.identity-current-role-list strong { font-size: .73rem; }
.identity-current-role-list small { color: var(--podium-muted); font-size: .65rem; }
.identity-empty-access { display: grid; gap: 3px; padding: 18px; border: 1px dashed #d8d1d5; border-radius: 6px; background: #faf8f9; }
.identity-empty-access strong { font-size: .74rem; }
.identity-empty-access span { color: var(--podium-muted); font-size: .67rem; }
.identity-pending-access { display: grid; gap: 2px; margin-top: 12px; padding: 10px 12px; border-radius: 5px; background: #fff5de; color: #7d5717; text-decoration: none; }
.identity-pending-access strong { font-size: .69rem; }
.identity-pending-access span { font-size: .63rem; }
.identity-employee-facts dl { display: grid; gap: 0; margin: 0; }
.identity-employee-facts dl > div { display: grid; gap: 3px; padding: 9px 0; border-top: 1px solid #eee9ec; }
.identity-employee-facts dl > div:first-child { border-top: 0; }
.identity-employee-facts dt { color: var(--podium-muted); font-size: .61rem; font-weight: 750; text-transform: uppercase; }
.identity-employee-facts dd { overflow-wrap: anywhere; margin: 0; font-size: .69rem; }
.identity-employee-facts dd.is-good { color: #21694f; font-weight: 750; }
.identity-employee-facts dd.is-warning { color: #8c5b0b; font-weight: 750; }
.identity-employee-facts dd.is-disabled { color: #9c4141; font-weight: 750; }
.identity-automation-note { display: grid; gap: 3px; margin-top: 12px; padding: 11px 12px; border-left: 3px solid #2e9671; background: #eff8f4; }
.identity-automation-note strong { color: #21694f; font-size: .68rem; }
.identity-automation-note span { color: #4f6c61; font-size: .63rem; line-height: 1.4; }
.identity-employee-home-footer { display: flex; gap: 20px; align-items: center; padding: 12px 20px; border-top: 1px solid var(--podium-border); background: #faf8f9; color: var(--podium-muted); font-size: .65rem; }
.identity-employee-home-footer span strong { color: var(--podium-ink); }
.identity-employee-home-footer a:first-of-type { margin-left: auto; }
.identity-employee-home-footer a { font-weight: 750; }
.identity-context-banner {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-bottom: 13px;
  padding: 12px 16px;
  border: 1px solid #d9c7d2;
  border-left: 3px solid var(--podium-primary);
  border-radius: 4px;
  background: var(--podium-primary-soft);
}
.identity-context-banner > div { display: grid; gap: 2px; }
.identity-context-banner span { color: var(--podium-primary-dark); font-size: .61rem; font-weight: 800; text-transform: uppercase; }
.identity-context-banner strong { color: var(--podium-ink); font-size: .79rem; }
.identity-context-banner small { color: var(--podium-muted); font-size: .66rem; }
.identity-context-banner > a { flex: 0 0 auto; font-size: .68rem; font-weight: 750; }
.entra-people-table tbody tr.is-selected { background: var(--podium-primary-soft); box-shadow: inset 3px 0 var(--podium-primary); }
.identity-leaver-checklist {
  overflow: hidden;
  margin-bottom: 14px;
  border: 1px solid var(--podium-border);
  border-radius: 4px;
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}
.identity-leaver-checklist.is-active { border-top: 3px solid #b74747; }
.identity-leaver-checklist > header { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--podium-border); }
.identity-leaver-checklist h2 { margin: 0; font-size: .95rem; }
.identity-leaver-checklist header div > span { color: var(--podium-muted); font-size: .68rem; }
.identity-leaver-checklist header > a { font-size: .68rem; font-weight: 750; }
.identity-leaver-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.identity-leaver-steps article { display: grid; grid-template-columns: auto 1fr; gap: 9px; padding: 15px; border-right: 1px solid var(--podium-border); }
.identity-leaver-steps article:last-child { border-right: 0; }
.identity-leaver-steps article > span { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: #eee9ec; color: var(--podium-muted); font-size: .62rem; font-weight: 800; }
.identity-leaver-steps article > div { display: grid; gap: 2px; }
.identity-leaver-steps strong { font-size: .71rem; }
.identity-leaver-steps small { color: var(--podium-muted); font-size: .62rem; line-height: 1.35; }
.identity-leaver-steps b { grid-column: 2; color: var(--podium-muted); font-size: .61rem; }
.identity-leaver-steps article.is-complete > span { background: #eaf7f1; color: #21694f; }
.identity-leaver-steps article.is-current { background: #fff9ed; }
.identity-leaver-steps article.is-current > span { background: #fff0cf; color: #8c5b0b; }
.identity-leaver-steps article.is-current b { color: #8c5b0b; }
.identity-leaver-warning { display: flex; gap: 12px; padding: 11px 16px; border-top: 1px solid #ecd8ab; background: #fff6e2; color: #7d5b21; font-size: .66rem; }
.identity-leaver-warning strong { flex: 0 0 auto; }
.identity-employee-audit-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.identity-audit-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0; }
.identity-audit-facts > div { display: grid; gap: 3px; min-width: 0; padding: 12px 16px; border-top: 1px solid var(--podium-border); }
.identity-audit-facts dt { color: var(--podium-muted); font-size: .6rem; font-weight: 750; text-transform: uppercase; }
.identity-audit-facts dd { overflow-wrap: anywhere; margin: 0; color: var(--podium-ink); font-size: .69rem; }
.identity-audit-facts code { color: var(--podium-muted); font-size: .62rem; }
.identity-audit-note { margin: 0; padding: 11px 16px; border-top: 1px solid var(--podium-border); background: #faf8f9; color: var(--podium-muted); font-size: .66rem; }

@media (max-width: 1399.98px) {
  .identity-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-connection-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-access-apps { grid-template-columns: 1fr; }
  .identity-person-switcher { grid-template-columns: 1fr; gap: 9px; }
  .identity-overview-return { justify-self: start; }
  .identity-employee-audit-grid { grid-template-columns: 1fr; }
}
@media (max-width: 991.98px) {
  .identity-catalog-grid,
  .identity-lifecycle-grid,
  .identity-lifecycle-guide,
  .identity-dashboard,
  .identity-overview-grid,
  .identity-request-layout { grid-template-columns: 1fr; }
  .identity-cleanup-planner { grid-template-columns: repeat(3, 1fr); }
  .identity-cleanup-planner > div { grid-column: 1 / -1; }
  .identity-employee-home-grid { grid-template-columns: 1fr; }
  .identity-current-access { border-right: 0; border-bottom: 1px solid var(--podium-border); }
  .identity-request-builder { position: static; }
  .identity-review-list > article { grid-template-columns: 1fr auto; }
  .identity-review-actions { grid-column: 1 / -1; }
  .identity-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-connection-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .identity-app-register > article { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 10px 12px; }
  .identity-app-role-count,
  .identity-app-access-count { grid-row: 2; }
  .identity-app-role-count { grid-column: 2; }
  .identity-app-access-count { display: none; }
  .identity-app-register > article > a { grid-column: 3; grid-row: 1 / span 2; }
  .identity-workflow-grid { grid-template-columns: 1fr; }
  .identity-workspace-status,
  .identity-leaver-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-lifecycle-action-list article { grid-template-columns: 72px minmax(0, 1fr) auto; }
  .identity-lifecycle-action-list article > div:nth-of-type(2) { grid-column: 2 / -1; grid-row: 2; }
  .identity-lifecycle-action-list article > time { grid-column: 3; grid-row: 1; }
  .identity-lifecycle-action-list article > a { grid-column: 2; grid-row: 3; justify-self: start; }
  .identity-workspace-status > div:nth-child(2),
  .identity-leaver-steps article:nth-child(2) { border-right: 0; }
  .identity-workspace-status > div:nth-child(-n+2),
  .identity-leaver-steps article:nth-child(-n+2) { border-bottom: 1px solid var(--podium-border); }
}
@media (max-width: 575.98px) {
  .identity-centre-heading { align-items: flex-start; }
  .identity-heading-actions { justify-content: flex-start; width: 100%; }
  .identity-summary-grid { grid-template-columns: 1fr; }
  .identity-applications-panel .panel-header { align-items: flex-start; flex-direction: column; }
  .identity-app-register > article { grid-template-columns: 36px minmax(0, 1fr); }
  .identity-app-register > article > a { grid-column: 2; grid-row: auto; justify-self: start; }
  .identity-role-list li { grid-template-columns: 1fr; }
  .identity-decision-actions { align-items: stretch; flex-direction: column; }
  .identity-access-selection-summary { align-items: flex-start; flex-direction: column; }
  .identity-request-review,
  .identity-application-intro { align-items: flex-start; flex-direction: column; }
  .identity-mapping-health { grid-template-columns: 1fr; }
  .identity-mapping-health > span { border-right: 0; border-bottom: 1px solid #ece8ea; }
  .identity-mapping-health > span:last-child { border-bottom: 0; }
  .identity-cleanup-planner { grid-template-columns: 1fr; }
  .identity-cleanup-planner > div { grid-column: auto; }
  .identity-person-search { grid-template-columns: 1fr; }
  .identity-person-search label { grid-column: auto; }
  .identity-attention-heading { align-items: flex-start; flex-direction: column; }
  .identity-attention-total { grid-auto-flow: column; gap: 6px; min-width: 0; }
  .identity-action-queue > a { grid-template-columns: auto minmax(0, 1fr); }
  .identity-action-queue > a > b { grid-column: 2; justify-self: start; border-radius: 4px; }
  .identity-platform-facts { grid-template-columns: 1fr; }
  .identity-platform-facts > div:nth-child(odd) { border-right: 0; }
  .identity-connection-strip { grid-template-columns: 1fr; }
  .identity-workspace-subnav { align-items: flex-start; flex-direction: column; }
  .identity-workspace-status,
  .identity-leaver-steps { grid-template-columns: 1fr; }
  .identity-lifecycle-summary { flex-wrap: wrap; }
  .identity-lifecycle-action-list article { grid-template-columns: 1fr; }
  .identity-lifecycle-action-list article > div:nth-of-type(2),
  .identity-lifecycle-action-list article > time,
  .identity-lifecycle-action-list article > a { grid-column: auto; grid-row: auto; }
  .identity-lifecycle-action-list article > a { justify-self: start; }
  .identity-workspace-status > div,
  .identity-leaver-steps article { border-right: 0; border-bottom: 1px solid var(--podium-border); }
  .identity-workspace-status > div:last-child,
  .identity-leaver-steps article:last-child { border-bottom: 0; }
  .identity-workspace-safety,
  .identity-context-banner,
  .identity-leaver-checklist > header,
  .identity-leaver-warning { align-items: flex-start; flex-direction: column; }
  .identity-audit-facts { grid-template-columns: 1fr; }
  .identity-employee-health { grid-template-columns: auto minmax(0, 1fr); }
  .identity-employee-health > .btn { grid-column: 2; justify-self: start; }
  .identity-employee-home-footer { align-items: flex-start; flex-direction: column; gap: 7px; }
  .identity-employee-home-footer a:first-of-type { margin-left: 0; }
}
/* Staged record workspaces */
.record-workspace-header { display: grid; gap: 12px; margin-bottom: 16px; }
.record-status-timeline,
.record-tabs { display: flex; gap: 0; overflow-x: auto; border: 1px solid #ddd8d5; border-radius: 10px; background: #fff; box-shadow: 0 2px 7px rgb(45 34 40 / 6%); }
.record-status-timeline span,
.record-tabs button { display: flex; align-items: center; min-width: max-content; min-height: 48px; gap: 8px; padding: 10px 16px; border: 0; border-right: 1px solid #ece8e5; background: transparent; color: #70676c; font-size: .76rem; font-weight: 720; }
.record-tabs button:last-child,
.record-status-timeline span:last-child { border-right: 0; }
.record-tabs button:hover { background: #faf7f8; color: #5f0038; }
.record-tabs button.active { background: #f8edf3; color: #780047; box-shadow: inset 0 -3px #a90064; }
.record-tabs button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgb(169 0 100 / 22%); outline-offset: -3px; }
.record-status-timeline span::before { width: 9px; height: 9px; border-radius: 50%; background: #d9d3d6; content: ""; }
.record-status-timeline span.is-complete { color: #17694f; }
.record-status-timeline span.is-complete::before { background: #2f8e70; }
.record-status-timeline span.is-current { background: #fff4eb; color: #a54a27; }
.record-status-timeline span.is-current::before { background: #f05b43; box-shadow: 0 0 0 4px rgb(240 91 67 / 15%); }
.record-next-action { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-left: 4px solid #f05b43; }
.record-next-action h2 { margin-bottom: 3px; }
.record-next-action p { margin-bottom: 0; color: #71696e; }
[data-record-panel][hidden] { display: none !important; }
.record-tab-panel.col-12 { width: 100%; }
@media (max-width: 767.98px) { .record-next-action { align-items: flex-start; flex-direction: column; } }
.my-work-heading { align-items: end; }
.my-work-metric { display: grid; gap: 3px; color: inherit; text-decoration: none; }
.my-work-metric:hover { border-color: #b79aca; color: inherit; box-shadow: 0 5px 15px rgb(58 35 51 / 10%); }
.my-work-metric > span { color: #70676d; font-size: .68rem; font-weight: 700; }
.my-work-metric > strong { color: #292228; font-size: 1.7rem; line-height: 1.1; }
.my-work-metric > small { color: #827980; font-size: .6rem; }
.my-work-metric.is-urgent { border-top: 3px solid #c85b4d; }
.my-work-metric.is-urgent > strong { color: #a33f34; }
.my-work-queue { overflow: hidden; }
.my-work-search { display: grid; grid-template-columns: minmax(220px, 420px) auto; gap: 8px; padding: 0 18px 12px; }
.my-work-filters { display: flex; gap: 5px; overflow-x: auto; padding: 0 18px 12px; border-bottom: 1px solid #e9e4e7; }
.my-work-filters a { display: inline-flex; gap: 7px; align-items: center; min-width: max-content; padding: 7px 10px; border: 1px solid #ddd6da; border-radius: 999px; color: #635a60; font-size: .66rem; font-weight: 750; text-decoration: none; }
.my-work-filters a span { display: grid; min-width: 18px; height: 18px; place-items: center; border-radius: 999px; background: #f0ecee; font-size: .57rem; }
.my-work-filters a:hover,
.my-work-filters a.is-active { border-color: #ac8dcc; background: #f3ecfb; color: var(--podium-accent); }
.my-work-list { display: grid; }
.my-work-list article { display: grid; grid-template-columns: 76px minmax(230px, 1fr) 110px auto; gap: 14px; align-items: center; padding: 13px 18px; border-bottom: 1px solid #ece8ea; }
.my-work-list article:last-child { border-bottom: 0; }
.my-work-list article:hover { background: #fcfafb; }
.my-work-list article > div { display: grid; gap: 2px; }
.my-work-list article > div > span { color: var(--podium-accent); font-size: .58rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.my-work-list article strong { color: #30282d; font-size: .73rem; }
.my-work-list article small,
.my-work-list article time { color: #776f74; font-size: .63rem; }
.my-work-priority { display: inline-flex; width: fit-content; padding: 4px 7px; border-radius: 999px; background: #f2eff0; color: #6d646a; font-size: .58rem; font-weight: 800; }
.my-work-priority.is-due-soon { background: #fff3db; color: #8b5a08; }
.my-work-priority.is-overdue { background: #fbe9e8; color: #9f3f35; }

/* App-wide interaction and accessibility baseline. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid rgb(105 63 171 / 30%);
  outline-offset: 2px;
}
.app-table tbody tr:focus-within { background: #faf7fc; box-shadow: inset 3px 0 var(--podium-accent); }
.empty-state { max-width: 680px; }
.empty-state h2 { line-height: 1.25; }
.alert[role="status"] { scroll-margin-top: 80px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media (max-width: 767.98px) {
  .my-work-heading { align-items: flex-start; }
  .my-work-search { grid-template-columns: 1fr; }
  .my-work-list article { grid-template-columns: 1fr auto; gap: 7px 12px; }
  .my-work-list article > div { grid-column: 1 / -1; grid-row: 1; }
  .my-work-priority { grid-column: 1; grid-row: 2; }
  .my-work-list article time { grid-column: 1; grid-row: 3; }
  .my-work-list article > a { grid-column: 2; grid-row: 2 / span 2; }
}
.home-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 6px 0 10px; }
.home-section-heading h2 { margin: 0; font-size: 1.1rem; }
.home-section-heading a { font-size: .76rem; font-weight: 700; }
.profile-activity-timeline { display: grid; gap: 0; }
.profile-activity-event { position: relative; display: grid; grid-template-columns: 120px 1fr auto; gap: 14px; padding: 12px 0 12px 22px; border-bottom: 1px solid #ece8e5; }
.profile-activity-event::before { position: absolute; top: 18px; left: 3px; width: 9px; height: 9px; border-radius: 50%; background: #a90064; content: ""; }
.profile-activity-event time { color: #766d72; font-size: .72rem; }
.profile-activity-event small { color: #766d72; }
@media (max-width: 767.98px) { .profile-activity-event { grid-template-columns: 1fr; gap: 3px; } }
.template-builder-form { width: 100%; max-width: none; }
.template-builder-grid { display: grid; width: 100%; grid-template-columns: minmax(250px,.8fr) minmax(390px,1.35fr) minmax(300px,1fr); gap: 14px; }
.template-builder-pane { min-width: 0; padding: 16px; border: 1px solid #e1dcda; border-radius: 10px; background: #fbfaf9; }
.template-builder-grid > .template-builder-pane:first-child,
.template-builder-grid > .template-builder-pane:last-child { position: sticky; top: 118px; align-self: start; max-height: calc(100vh - 138px); overflow: auto; }
.template-builder-form > .form-actions { position: sticky; bottom: 12px; z-index: 4; margin: 18px 0 0; padding: 12px; border: 1px solid #ddd8d5; border-radius: 10px; background: rgb(255 255 255 / 94%); box-shadow: 0 8px 24px rgb(45 34 40 / 12%); backdrop-filter: blur(8px); }
.template-builder-editor { background: #fff; }
.template-live-preview { min-height: 420px; max-height: 620px; overflow: auto; padding: 32px 28px; border: 1px solid #d7d0cc; border-radius: 6px; background: #fff; box-shadow: 0 8px 22px rgb(45 34 40 / 8%); color: #342d31; font-family: var(--podium-font-document); font-size: .8rem; line-height: 1.65; white-space: pre-wrap; }
.template-builder-grid + [data-record-panel="compliance"] { margin-top: 18px; }
@media (max-width: 1199.98px) {
  .template-builder-grid { grid-template-columns: 1fr; }
  .template-builder-grid > .template-builder-pane:first-child,
  .template-builder-grid > .template-builder-pane:last-child { position: static; max-height: none; }
}
.review-three-panel-builder { display: grid; grid-template-columns: minmax(210px,.65fr) minmax(520px,1.7fr) minmax(280px,.85fr); align-items: start; gap: 14px; }
.review-builder-sidebar,.review-builder-preview-pane { position: sticky; top: 120px; padding: 16px; border: 1px solid #dedbd8; border-radius: 12px; background: #fff; }
.review-builder-editor-pane { min-width: 0; }
.review-structure-group { display: grid; gap: 6px; padding: 12px 0; border-bottom: 1px solid #ece8e5; }
.review-structure-group span { display: flex; justify-content: space-between; gap: 8px; padding-left: 10px; color: #61595e; font-size: .76rem; }
.review-structure-group small { display: grid; width: 22px; height: 22px; place-items: center; border-radius: 50%; background: #f1ecef; }
.review-form-preview { display: grid; gap: 10px; padding: 24px 20px; border: 1px solid #d7d0cc; border-radius: 6px; background: #fff; box-shadow: 0 8px 22px rgb(45 34 40 / 8%); }
.review-form-preview > small { color: #756d72; }
.review-form-preview section { display: grid; gap: 6px; padding-top: 12px; border-top: 1px solid #ece8e5; }
.review-form-preview h3 { margin: 0; font-size: .85rem; }
.review-form-preview label { margin-top: 5px; font-size: .7rem; font-weight: 650; }
.review-preview-input { padding: 7px 9px; border: 1px solid #ddd8d5; border-radius: 5px; color: #9a9196; font-size: .68rem; }
@media (max-width: 1299.98px) { .review-three-panel-builder { grid-template-columns: 1fr; } .review-builder-sidebar,.review-builder-preview-pane { position: static; } }
.contract-template-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.contract-template-card { display: grid; min-width: 0; gap: 14px; padding: 18px; border: 1px solid #ded9d6; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgb(45 34 40 / 6%); }
.contract-template-readiness { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 8px; }
.contract-template-readiness > span { display: grid; flex: 0 0 28px; height: 28px; place-items: center; border-radius: 50%; font-weight: 800; }
.contract-template-readiness > div { display: grid; }
.contract-template-readiness small { color: inherit; opacity: .82; }
.contract-template-readiness.is-complete { background: #edf8f3; color: #17694f; }
.contract-template-readiness.is-complete > span { background: #d3efe2; }
.contract-template-readiness.is-missing { background: #fff4eb; color: #994326; }
.contract-template-readiness.is-missing > span { background: #ffe0cd; }
@media (max-width: 1099.98px) { .contract-template-grid { grid-template-columns: 1fr; } }
.report-view-toolbar { display: flex; align-items: end; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; padding: 10px 12px; border: 1px solid #ded9d6; border-radius: 9px; background: #fff; }
.report-view-toolbar > div:first-child { min-width: 190px; }
.report-column-menu { max-height: 340px; overflow-y: auto; }

/* Shared page system: these primitives keep established Razor Pages visually
   consistent without changing the business workflow owned by each page. */
.shared-page-system { display: contents; }
.shared-section-landing,
.shared-section-grid,
.shared-section-list { min-width: 0; }
.section-landing-heading,
.section-surface {
  min-width: 0;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: #fff !important;
  box-shadow: var(--podium-shadow-soft) !important;
}
.section-landing-heading { margin-bottom: 16px; }
.page-heading {
  align-items: flex-start;
  margin-bottom: 18px;
}
.page-heading > div { min-width: 0; }
.page-heading h1 {
  color: #17121f;
  font-size: clamp(1.6rem, 1.25rem + 1vw, 2.2rem);
  font-weight: 750;
  letter-spacing: -.035em;
}
.page-heading-description {
  max-width: 760px;
  margin: 7px 0 0;
  color: #6c6269;
  line-height: 1.5;
}
.work-panel {
  min-width: 0;
  height: auto;
  padding: 22px 24px;
}
.panel-header {
  min-width: 0;
  margin: -2px 0 2px;
  padding-bottom: 14px;
  border-bottom-color: #eee9eb;
}
.panel-header > div { min-width: 0; }
.panel-header h2 {
  color: #1d1720;
  font-size: 1.02rem;
  font-weight: 750;
  line-height: 1.3;
}
.panel-kicker {
  margin: 0 0 4px;
  color: var(--podium-accent);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.detail-list > div {
  grid-template-columns: minmax(130px, .38fr) minmax(0, 1fr);
  padding: 13px 0;
  border-bottom-color: #f0ecee;
}
.detail-list dt {
  color: #6a6067;
  font-size: .78rem;
  font-weight: 680;
}
.detail-list dd {
  min-width: 0;
  color: #272027;
  overflow-wrap: anywhere;
}
.table-responsive {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}
.app-table { min-width: 680px; }
.app-table > :not(caption) > * > * { padding: 13px 14px; }
.app-table thead th {
  background: #fbfafb;
  border-bottom-color: #e9e4e7;
  color: #746970;
  letter-spacing: .035em;
}
.app-table tbody td { border-bottom-color: #efebed; }
.empty-state {
  display: grid;
  min-height: 170px;
  align-content: center;
  justify-items: center;
  padding: 36px 22px;
}

/* Employee self-service profile */
.my-profile-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 14px;
  padding: 26px 28px;
  background: #fff;
  box-shadow: var(--podium-shadow-soft);
}
.my-profile-identity { display: flex; align-items: center; min-width: 0; gap: 18px; }
.my-profile-avatar {
  display: grid;
  flex: 0 0 72px;
  width: 72px;
  height: 72px;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg, #780047, #a90064);
  color: #fff;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: .03em;
  box-shadow: 0 8px 20px rgb(95 0 56 / 20%);
}
.my-profile-eyebrow {
  margin: 0 0 4px;
  color: var(--podium-accent);
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.my-profile-identity h2 { margin: 0; color: #18121c; font-size: clamp(1.45rem, 1.15rem + .8vw, 2rem); font-weight: 780; }
.my-profile-legal-name { margin: 3px 0 0; color: #786e74; font-size: .75rem; }
.my-profile-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; color: #5e545b; font-size: .78rem; }
.my-profile-meta span { position: relative; }
.my-profile-meta span + span::before { position: absolute; left: -11px; color: #c9bec4; content: "•"; }
.my-profile-hero-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 10px; }
.my-profile-action-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 18px;
  margin-bottom: 16px;
  padding: 16px 20px;
  background: #fff9ef;
  box-shadow: var(--podium-shadow-soft);
}
.my-profile-action-strip.is-complete { background: #eef8f4; }
.my-profile-completion {
  display: grid;
  width: 76px;
  height: 76px;
  place-content: center;
  border-radius: 50%;
  background: conic-gradient(var(--podium-accent) var(--profile-progress), #f0e5e9 0);
  color: #4e1739;
  text-align: center;
  box-shadow: inset 0 0 0 8px #fff;
}
.my-profile-completion strong { font-size: 1rem; line-height: 1; }
.my-profile-completion span { margin-top: 3px; font-size: var(--podium-type-eyebrow); font-weight: 700; line-height: 1.1; white-space: nowrap; }
.my-profile-action-copy { display: grid; min-width: 0; gap: 4px; }
.my-profile-action-copy strong { color: #33252d; }
.my-profile-action-copy span { color: #74676e; font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.my-profile-action-strip > a { color: var(--hub-plum); font-size: .76rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.my-profile-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; gap: 16px; }
.my-profile-card { grid-column: span 5; }
.my-profile-card-wide { grid-column: span 7; }
.my-profile-grid-full { grid-column: 1 / -1; }
.profile-detail-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.profile-detail-list > div { grid-template-columns: 1fr; align-content: start; gap: 4px; }
.profile-address { min-height: 76px; padding-top: 16px; color: #31282e; line-height: 1.55; }
.profile-address p { margin: 0; }
.profile-empty-value { margin: 16px 0 0; color: #7a7076; }
.emergency-contact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 14px; }
.emergency-contact-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  padding: 16px;
  background: #fff;
  box-shadow: 0 3px 12px rgb(57 35 47 / 12%);
}
.emergency-contact-card > div:first-child { display: grid; gap: 3px; }
.emergency-contact-card > div:first-child span { color: #766b72; font-size: .72rem; }
.emergency-contact-card dl { grid-column: 1 / -1; margin: 0; }
.emergency-contact-card dl > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; padding-top: 7px; font-size: .72rem; }
.emergency-contact-card dt { color: #7a7076; }
.emergency-contact-card dd { margin: 0; overflow-wrap: anywhere; }
.my-profile-sensitive { padding: 0; overflow: hidden; }
.my-profile-sensitive summary {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  color: #2f252b;
  cursor: pointer;
  list-style: none;
}
.my-profile-sensitive summary::-webkit-details-marker { display: none; }
.my-profile-sensitive summary > span { display: flex; align-items: center; gap: 10px; }
.my-profile-sensitive summary > span:last-child { color: #786d73; font-size: .7rem; font-weight: 650; }
.my-profile-lock { color: #2e8c6f; font-size: .65rem; }
.my-profile-sensitive-body { padding: 0 22px 20px; border-top: 1px solid #eee9eb; }
.my-profile-sensitive-body > p { margin: 16px 0 4px; color: #746970; font-size: .75rem; }

@media (max-width: 1199.98px) {
  .my-profile-card,
  .my-profile-card-wide { grid-column: span 6; }
  .profile-detail-list { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .page-heading { align-items: stretch; flex-direction: column; }
  .page-heading > :last-child { align-self: flex-start; }
  .work-panel { padding: 18px; }
  .panel-header { align-items: flex-start; flex-direction: column; }
  .detail-list > div { grid-template-columns: 1fr; gap: 4px; }
  .my-profile-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
  .my-profile-avatar { flex-basis: 58px; width: 58px; height: 58px; font-size: 1rem; }
  .my-profile-hero-actions { justify-content: flex-start; }
  .my-profile-action-strip { grid-template-columns: auto minmax(0, 1fr); padding: 14px 16px; }
  .my-profile-action-strip > a { grid-column: 2; }
  .my-profile-completion { width: 64px; height: 64px; }
  .my-profile-card,
  .my-profile-card-wide { grid-column: 1 / -1; }
  .emergency-contact-grid { grid-template-columns: 1fr; }
  .my-profile-sensitive summary { align-items: flex-start; flex-direction: column; }
}

/* Unified Podium workspace shell: a permanent suite rail, a stable HR module
   column and a quiet content canvas shared with ERP, Support and Connect. */
body {
  background: #faf9fc;
  color: #24212b;
}

body > header {
  position: sticky;
  top: 0;
  z-index: 1080;
  min-height: var(--hub-topbar-height);
  margin-left: var(--suite-rail-width);
}

.suite-topbar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 1100;
  width: var(--suite-rail-width);
  min-height: 100vh;
  border: 0;
  background: #2d2a34;
  box-shadow: 2px 0 8px rgb(24 21 31 / 12%);
}

.suite-topbar .suite-rail-inner {
  display: flex;
  height: 100%;
  min-height: 0;
  padding: 14px 8px;
  align-items: stretch;
  flex-direction: column;
  gap: 18px;
  overflow: hidden;
}

.suite-rail-mark,
.suite-rail-mark:visited {
  display: grid;
  width: 42px;
  height: 42px;
  margin: 0 auto;
  place-items: center;
  border-radius: 11px;
  background: var(--podium-primary-gradient);
  color: #fff;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 20px rgb(25 18 44 / 24%);
}
.suite-rail-mark img { display: block; width: 30px; height: 30px; object-fit: contain; }

.suite-rail-mark:hover,
.suite-rail-mark:focus-visible { color: #fff; outline: 2px solid #fff; outline-offset: 2px; }

.suite-app-switcher {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  align-items: stretch;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 5px;
  scrollbar-width: none;
}
.suite-app-switcher::-webkit-scrollbar { display: none; }

.suite-app-link,
.suite-app-link:visited {
  display: grid;
  width: 100%;
  min-height: 54px;
  padding: 8px 3px;
  border: 0;
  border-radius: 10px;
  place-items: center;
  align-content: center;
  gap: 3px;
  color: #d7d2df;
  text-align: center;
  text-decoration: none;
  white-space: normal;
}

.suite-app-icon { display: grid; width: 24px; height: 24px; place-items: center; }
.suite-app-icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.suite-app-name { display: block; font-size: .68rem; font-weight: 600; line-height: 1.1; }
a.suite-app-link:hover,
a.suite-app-link:focus-visible { border: 0; background: #3d3945; color: #fff; outline: 2px solid #b7a6eb; outline-offset: 1px; }
.suite-app-link.active,
.suite-app-link.active:visited { border: 0; background: #59477d; color: #fff; box-shadow: inset 3px 0 0 #a58be9; }
.suite-app-link.is-unavailable { color: #9a94a1; cursor: not-allowed; }

.hub-topbar {
  position: relative;
  height: var(--hub-topbar-height);
  min-height: var(--hub-topbar-height);
  padding-block: 0;
  border-bottom: 1px solid var(--podium-border) !important;
  background: #fff;
  box-shadow: none;
}

.hub-topbar .container-fluid { min-height: var(--hub-topbar-height); gap: 24px; }
.hub-app-context { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; color: #201d26; white-space: nowrap; }
.hub-app-context span { padding-right: 12px; border-right: 1px solid var(--podium-border); color: var(--podium-primary); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
.hub-app-context strong { font-size: .94rem; font-weight: 700; }
.hub-topbar .navbar-collapse { gap: 18px; }

.hub-global-search { max-width: 520px; }
.hub-global-search input {
  height: 40px;
  border-color: #d8d5e1;
  border-radius: 8px;
  background: #fbfaff;
  color: #29252f;
}
.hub-global-search input::placeholder { color: #817a8b; }
.hub-global-search input:focus { border-color: var(--podium-primary); box-shadow: 0 0 0 3px rgb(104 71 199 / 12%); }
.hub-global-search-button { color: #625b6d; }
.hub-global-search-button:hover,
.hub-global-search-button:focus-visible { background: #f0ebfb; color: var(--podium-primary-dark); outline: 2px solid var(--podium-primary); }

.hub-topbar .utility-icon-link,
.hub-topbar .avatar-button { border-color: #d8d5e1; background: #fff; color: #4c4654; }
.hub-topbar .utility-icon-link:hover,
.hub-topbar .utility-icon-link:focus,
.hub-topbar .avatar-button:hover,
.hub-topbar .avatar-button:focus { border-color: var(--podium-primary); background: #f3effd; color: var(--podium-primary-dark); }
.hub-topbar .avatar-initial { background: var(--podium-primary); color: #fff; }

.app-primary-nav,
.app-primary-nav:hover,
.app-primary-nav:focus-within,
.app-primary-nav.has-flyout-open {
  position: fixed;
  top: var(--hub-topbar-height);
  bottom: 0;
  left: var(--suite-rail-width);
  width: var(--hub-rail-width);
  padding: 18px 12px;
  overflow-y: auto;
  overflow-x: visible;
  scrollbar-gutter: stable;
  overflow-anchor: none;
  gap: 3px !important;
  background: #fff;
  box-shadow: 3px 0 12px rgb(39 33 61 / 8%);
  transition: none;
}

.app-primary-nav .nav-link,
.app-navbar .app-primary-nav .nav-link,
.app-navbar .app-primary-nav .nav-link:visited,
.app-navbar .app-primary-nav .nav-link.dropdown-toggle,
.app-navbar .app-primary-nav .nav-link.dropdown-toggle:visited,
.app-navbar .app-primary-nav .nav-link.show,
.app-navbar .app-primary-nav .show > .nav-link,
.app-navbar .app-primary-nav .nav-link.active {
  min-height: 42px;
  padding: 0 12px;
  border-radius: 7px;
  color: #4b4552;
  gap: 12px;
}
.app-primary-nav .nav-icon { width: 18px; height: 18px; min-width: 18px; color: #746d7e; }
.app-primary-nav .nav-link > span,
.app-primary-nav:hover .nav-link > span,
.app-primary-nav:focus-within .nav-link > span { max-width: 170px; color: inherit; opacity: 1; font-size: .82rem; font-weight: 650; }
.app-primary-nav .nav-link:hover,
.app-primary-nav .nav-link:focus,
.app-primary-nav .nav-link.show,
.app-navbar .app-primary-nav .nav-link:hover,
.app-navbar .app-primary-nav .nav-link:focus,
.app-navbar .app-primary-nav .nav-link.show { background: #f5f2fb; color: var(--podium-primary-dark); }
.app-navbar .app-primary-nav .nav-link.active,
.app-navbar .app-primary-nav .nav-link.active:visited { background: #eee8fa; color: var(--podium-primary-dark); box-shadow: inset 3px 0 0 var(--podium-primary); }
.app-navbar .app-primary-nav .nav-link.active .nav-icon { color: var(--podium-primary); }

.section-nav-flyout {
  top: var(--hub-topbar-height);
  left: calc(var(--suite-rail-width) + var(--hub-rail-width));
  border-left-color: var(--podium-border);
  box-shadow: 12px 0 30px rgb(39 33 61 / 12%);
}
.section-nav-flyout-header { border-bottom-color: var(--podium-border); }
.section-nav-flyout-header strong,
.section-nav-flyout-links a,
.section-nav-flyout-links a:visited { color: var(--podium-primary-dark); }
.section-nav-flyout-links a:hover,
.section-nav-flyout-links a:focus-visible,
.section-nav-flyout-links a.active { background: #f1ecfb; color: var(--podium-primary-dark); }

.section-navigation { top: var(--hub-topbar-height); margin-left: calc(var(--suite-rail-width) + var(--hub-rail-width)); border-bottom-color: var(--podium-border); box-shadow: none; }
.section-navigation a:hover,
.section-navigation a:focus,
.section-navigation a[aria-current="page"] { background: #eee8fa; color: var(--podium-primary-dark); }

.app-workspace {
  padding-right: 24px !important;
  padding-left: calc(var(--suite-rail-width) + var(--hub-rail-width) + 24px) !important;
}
.app-main { min-height: calc(100vh - var(--hub-topbar-height)); padding-top: 22px; }
.app-footer { border-top-color: var(--podium-border) !important; background: #fff; }

.metric-card,
.work-panel,
.dashboard-action-section,
.dashboard-calendar-panel,
.employee-profile-header,
.readiness-item,
.overview-status-stack a,
.home-widget,
.home-summary-card {
  border: 1px solid var(--podium-border);
  background: #fff;
  box-shadow: var(--podium-shadow-soft);
}

.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
  border-color: var(--podium-primary-dark) !important;
  background: var(--podium-primary-gradient) !important;
  color: #fff !important;
}
.btn-outline-primary { border-color: #b8a9df; color: var(--podium-primary-dark); }
.btn-outline-primary:hover,
.btn-outline-primary:focus { border-color: var(--podium-primary); background: #eee8fa; color: var(--podium-primary-dark); }
.badge.bg-primary,
.text-bg-primary { background-color: var(--podium-primary) !important; }

@media (max-width: 991.98px) {
  html {
    --suite-rail-width: 0px;
    --hub-rail-width: 0px;
    --hub-topbar-height: 62px;
  }
  body > header { margin-left: 0; }
  .suite-topbar {
    position: relative;
    width: 100%;
    min-height: 58px;
  }
  .suite-topbar .suite-rail-inner { min-height: 58px; padding: 7px 12px; align-items: center; flex-direction: row; gap: 10px; }
  .suite-rail-mark { width: 38px; height: 38px; margin: 0; flex: 0 0 38px; }
  .suite-app-switcher { min-height: auto; overflow-x: auto; overflow-y: hidden; align-items: center; flex-direction: row; gap: 4px; }
  .suite-app-link,
  .suite-app-link:visited { width: auto; min-width: 64px; min-height: 46px; padding: 4px 6px; }
  .suite-app-name { display: block; font-size: .6rem; line-height: 1.08; }
  .hub-topbar .container-fluid { flex-wrap: wrap; }
  .hub-app-context { margin-right: auto; }
  .hub-topbar .navbar-collapse {
    width: calc(100% + 32px);
    margin: 0 -16px;
    padding: 8px 16px 12px;
    border-top: 1px solid var(--podium-border);
    background: #fff;
    box-shadow: 0 12px 24px rgb(35 30 50 / 10%);
  }
  .hub-global-search { max-width: none; margin: 0 0 4px; }
  .app-primary-nav,
  .app-primary-nav:hover,
  .app-primary-nav:focus-within,
  .app-primary-nav.has-flyout-open {
    position: static;
    width: 100%;
    margin: 0;
    max-height: 58vh;
    padding: 4px 0 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
  }
  .section-navigation,
  .persistent-section-navigation-host,
  .persistent-section-panel { display: none !important; }
  .persistent-section-layout { display: block; }
  .app-workspace { padding-right: 16px !important; padding-left: 16px !important; }
}

@media (max-width: 575.98px) {
  .hub-app-context strong { display: none; }
  .hub-topbar .container-fluid { padding-right: 12px !important; padding-left: 12px !important; }
  .hub-topbar .navbar-collapse {
    width: calc(100% + 24px);
    margin-right: -12px;
    margin-left: -12px;
    padding-right: 12px;
    padding-left: 12px;
  }
  .app-main { padding-top: 16px; }
}

/* Podium neutral workspace visual system
   Mirrors the compact, calm treatment shared with the ERP workspace while
   keeping every existing Razor Page and workflow server rendered. */
html {
  --podium-primary: #6547c2;
  --podium-primary-dark: #4d329f;
  --podium-primary-teal: #7458cf;
  --podium-primary-teal-dark: #5940b0;
  --podium-primary-gradient: linear-gradient(135deg, #7458cf 0%, #6041b6 100%);
  --podium-primary-soft: #f1edfb;
  --podium-canvas: #f7f7fa;
  --podium-surface: #fff;
  --podium-surface-soft: #fbfaff;
  --podium-border: #e2e1e8;
  --podium-border-strong: #d6d4df;
  --podium-text: #24212b;
  --podium-text-muted: #706b78;
  --podium-shadow: 0 7px 22px rgb(35 30 50 / 8%);
  --podium-shadow-soft: 0 2px 8px rgb(35 30 50 / 6%);
  --podium-radius: 10px;
  --podium-radius-small: 7px;
  --podium-font-sans: "Geist Sans", "Segoe UI Variable Text", Inter, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 15px;
}

body {
  background: var(--podium-canvas);
  color: var(--podium-text);
  font-family: var(--podium-font-sans);
  font-kerning: normal;
  overflow-x: clip;
  text-rendering: optimizeLegibility;
}

.app-workspace,
.app-main { background: var(--podium-canvas); }

/* Structural wrappers organise the page but must never appear as cards. */
.persistent-section-layout {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.persistent-section-content.app-main {
  width: auto;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
  font-size: .875rem;
  line-height: 1.5;
}

.employee-directory-panel { container-type: inline-size; }

@container (max-width: 820px) {
  .employee-filter-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .employee-search-field,
  .employee-quick-filters { grid-column: 1 / -1; }
  .employee-filter-submit { justify-self: start; }
  .employee-directory-table { min-width: 760px; }
  .employee-directory-table th:nth-child(3),
  .employee-directory-table td:nth-child(3) { display: none; }
}

@container (max-width: 480px) {
  .employee-filter-panel { grid-template-columns: 1fr; }
  .employee-search-field,
  .employee-quick-filters { grid-column: auto; }
  .employee-filter-submit { width: 100%; }
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-heading h1,
.panel-header h2 {
  color: #1f1c27;
  font-family: var(--podium-font-sans);
  font-weight: 600;
  letter-spacing: -.025em;
}

p,
small,
.text-muted,
.page-heading-description { color: var(--podium-text-muted); }

.page-heading { margin-bottom: 16px; }
.page-heading h1 {
  margin-bottom: .3rem;
  font-size: clamp(1.65rem, 1.5rem + .45vw, 1.95rem);
  line-height: 1.16;
}
.page-heading > div > .text-uppercase:first-child,
.page-heading > div > .panel-kicker:first-child {
  font-size: .68rem !important;
  line-height: 1.25;
  letter-spacing: .095em;
}
.page-heading-description,
.page-heading > div > .text-muted {
  max-width: 780px;
  font-size: .875rem !important;
  line-height: 1.5;
}
.panel-kicker { color: #6a4bc0; font-size: .64rem; letter-spacing: .1em; }

.hub-topbar,
.section-navigation {
  border-color: var(--podium-border) !important;
  background: #fff;
}

.app-primary-nav,
.app-primary-nav:hover,
.app-primary-nav:focus-within,
.app-primary-nav.has-flyout-open {
  border-right: 1px solid var(--podium-border);
  background: #fbfbfd;
  box-shadow: none;
}

.app-primary-nav .nav-link,
.app-navbar .app-primary-nav .nav-link,
.app-navbar .app-primary-nav .nav-link:visited,
.app-navbar .app-primary-nav .nav-link.active {
  border-radius: var(--podium-radius-small);
  color: #514c59;
  font-size: .82rem;
}

.app-primary-nav .nav-link:hover,
.app-primary-nav .nav-link:focus,
.app-navbar .app-primary-nav .nav-link.active,
.app-navbar .app-primary-nav .nav-link.active:visited {
  background: var(--podium-primary-soft);
  color: var(--podium-primary-dark);
}

.section-nav-flyout {
  border-color: var(--podium-border);
  background: #fff;
  box-shadow: 10px 0 26px rgb(35 30 50 / 10%);
}

.section-nav-flyout-header,
.section-nav-flyout-links,
.section-nav-flyout-group { border-color: var(--podium-border); }
.section-nav-flyout-links a { border-radius: var(--podium-radius-small); }
.section-nav-flyout-links a:hover,
.section-nav-flyout-links a:focus-visible,
.section-nav-flyout-links a.active { background: var(--podium-primary-soft); }

/* One surface language for cards, summaries, dashboards, builders and lists. */
.section-landing-heading,
.section-surface,
.metric-card,
.work-panel,
.dashboard-action-section,
.dashboard-calendar-panel,
.employee-profile-header,
.readiness-item,
.overview-status-stack a,
.home-widget,
.home-summary-card,
.card,
.modal-content,
.podium-inspector,
.operations-side-nav,
.operations-side-summary,
.records-stat,
.records-library,
.records-queue,
.governance-pulse,
.governance-metric,
.governance-workspaces,
.onboarding-stepper,
.onboarding-step-card,
.record-tabs,
.template-builder-pane,
.review-builder-sidebar,
.review-builder-preview-pane,
.contract-template-card,
.identity-request-list > li,
.identity-request-list > article,
.report-view-toolbar {
  border: 1px solid var(--podium-hairline) !important;
  border-radius: var(--podium-radius) !important;
  background-color: var(--podium-surface) !important;
  box-shadow: var(--podium-shadow-soft) !important;
}

.work-panel,
.section-surface { padding: 20px 22px; }
.panel-header { border-bottom-color: #ecebf0; }
.panel-header h2,
.work-panel > h2,
.section-surface > h2 { font-size: 1rem; line-height: 1.3; }
.work-panel h3,
.section-surface h3 { font-size: .92rem; line-height: 1.35; }

.home-welcome-card,
.starter-journey-card,
.onboarding-hero {
  border-radius: var(--podium-radius) !important;
  box-shadow: var(--podium-shadow) !important;
}

/* Compact controls match the ERP workspace without reducing touch targets. */
.btn,
.btn-sm,
.form-control,
.form-select,
.input-group-text,
.dropdown-menu,
.alert,
.file-drop-zone {
  border-radius: var(--podium-radius-small) !important;
}

.btn {
  min-height: 36px;
  padding: .48rem .82rem;
  font-size: .82rem;
  font-weight: 650;
}
.btn-sm { min-height: 31px; padding: .35rem .65rem; font-size: .75rem; }
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
  border-color: var(--podium-primary) !important;
  background: var(--podium-primary) !important;
  box-shadow: none !important;
}
.btn-primary:hover,
.btn-primary:focus { background: var(--podium-primary-dark) !important; }
.btn-outline-primary { border-color: #c7bce7; background: #fff; }
.btn-outline-primary:hover,
.btn-outline-primary:focus { border-color: #a996dc; background: var(--podium-primary-soft); }

.form-control,
.form-select,
.input-group-text {
  min-height: 38px;
  border-color: var(--podium-border-strong);
  background-color: #fff;
  color: var(--podium-text);
  font-size: .86rem;
  box-shadow: none;
}
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: #8e77cf;
  box-shadow: 0 0 0 3px rgb(101 71 194 / 12%);
}
.form-label,
label { color: #504b57; font-size: .8rem; font-weight: 600; }

.table-responsive { border-radius: var(--podium-radius-small); }
.app-table,
.table { color: var(--podium-text); font-size: .82rem; }
.app-table thead th,
.table thead th {
  border-bottom-color: var(--podium-border);
  background: #faf9fc;
  color: #777180;
  font-size: .68rem;
  font-weight: 720;
  letter-spacing: .045em;
}
.app-table tbody td,
.table tbody td { border-bottom-color: #eeedf2; }
.app-table tbody tr:hover,
.table tbody tr:hover { background: #faf9fd; }

.badge,
[class$="-pill"],
[class*="-pill "] { font-weight: 650; }

.alert { border-color: var(--podium-border); box-shadow: none; }
.alert-info { background: #f2f0fb; color: #493784; }
.alert-success { background: #edf8f4; color: #216d59; }
.alert-warning { background: #fff8e8; color: #765716; }
.alert-danger { background: #fff0f1; color: #973947; }

.detail-list > div,
.status-list > div { border-bottom-color: #eeedf2; }
.detail-list dt,
.status-list dt { color: #716b78; }

.empty-state { border-radius: var(--podium-radius); background: #faf9fc; }
.empty-state h2 { font-size: 1rem; line-height: 1.3; }
.empty-state p { font-size: .86rem; line-height: 1.5; }
.policy-body,
.template-live-preview,
.review-form-preview { border-color: var(--podium-border); box-shadow: none; }

/* Shared content scale. Rich policy and template HTML previously retained its
   imported heading sizes, which made My Employment pages look unrelated. */
.policy-body,
.template-live-preview,
.review-form-preview { font-size: .875rem; line-height: 1.6; }
.policy-body h1,
.template-live-preview h1,
.review-form-preview h1 { font-size: 1.15rem; line-height: 1.35; }
.policy-body h2,
.template-live-preview h2,
.review-form-preview h2 { font-size: 1.03rem; line-height: 1.35; }
.policy-body h3,
.template-live-preview h3,
.review-form-preview h3 { font-size: .94rem; line-height: 1.4; }
.policy-body p,
.policy-body li,
.template-live-preview p,
.template-live-preview li,
.review-form-preview p,
.review-form-preview li { font-size: inherit; line-height: inherit; }

@media (max-width: 767.98px) {
  html { font-size: 14px; }
  .work-panel,
  .section-surface { padding: 17px; }
}

/* Podium type and accent contract
   Keep the whole suite to six reusable text sizes. Component-specific legacy
   rules may control layout and weight, but not introduce another type scale. */
html {
  --podium-type-display: 30px;
  --podium-type-heading: 18px;
  --podium-type-subheading: 15px;
  --podium-type-body: 14px;
  --podium-type-small: 12px;
  --podium-type-eyebrow: 11px;
  --podium-weight-regular: 400;
  --podium-weight-medium: 500;
  --podium-weight-semibold: 600;
  --podium-accent: #6547c2;
  --podium-accent-strong: #4d329f;
  --podium-accent-soft: #f1edfb;
  --podium-accent-softer: #f8f6fd;
  --podium-primary: var(--podium-accent);
  --podium-primary-dark: var(--podium-accent-strong);
  --podium-primary-gradient: linear-gradient(135deg, #4d329f 0%, #7458cf 100%);
  --podium-primary-soft: var(--podium-accent-soft);
  --bs-primary: #6547c2;
  --bs-primary-rgb: 101, 71, 194;
  --bs-link-color: #4d329f;
  --bs-link-hover-color: #382176;
  --hub-plum: var(--podium-accent-strong);
  overflow-x: clip;
}

body,
.persistent-section-content.app-main {
  font-size: var(--podium-type-body);
  line-height: 1.5;
}

.page-heading h1 {
  font-size: var(--podium-type-display) !important;
  line-height: 1.16;
}

.panel-header h2,
.work-panel > h2,
.section-surface > h2,
.settings-health h2,
.settings-card h2,
.home-widget-header h2,
.records-section-heading h2,
.records-queue-header h2,
.global-search-section-heading h2 {
  font-size: var(--podium-type-heading) !important;
  line-height: 1.3;
}

.work-panel h3,
.section-surface h3,
.empty-state h2 {
  font-size: var(--podium-type-subheading) !important;
  line-height: 1.35;
}

.page-heading-description,
.page-heading > div > .text-muted,
.form-control,
.form-select,
.input-group-text,
.app-table,
.table,
.detail-list,
.status-list,
.policy-body,
.template-live-preview,
.review-form-preview {
  font-size: var(--podium-type-body) !important;
}

.btn,
.btn-sm,
.form-label,
label,
small,
.small,
.text-muted.small,
.metric-note,
.settings-card-copy p,
.settings-link-list a small {
  font-size: var(--podium-type-small) !important;
}

.page-heading > div > .text-uppercase:first-child,
.page-heading > div > .panel-kicker:first-child,
.panel-kicker,
.settings-eyebrow,
[class$="-eyebrow"],
[class*="-eyebrow "],
[class$="-kicker"],
[class*="-kicker "],
.app-table thead th,
.table thead th {
  font-size: var(--podium-type-eyebrow) !important;
}

.app-primary-nav .nav-link,
.app-primary-nav .nav-link > span,
.section-nav-flyout-links a,
.operations-side-nav a,
.persistent-section-panel a {
  font-size: var(--podium-type-body) !important;
}

.policy-body h1,
.template-live-preview h1,
.review-form-preview h1,
.policy-body h2,
.template-live-preview h2,
.review-form-preview h2 {
  font-size: var(--podium-type-heading) !important;
}

.policy-body h3,
.template-live-preview h3,
.review-form-preview h3 {
  font-size: var(--podium-type-subheading) !important;
}

.home-welcome-copy h1,
.records-hero h1,
.governance-hero h1,
.onboarding-hero h1,
.section-landing-heading h1 {
  font-size: var(--podium-type-display) !important;
  line-height: 1.16 !important;
}

.app-main :where(h2) {
  font-size: var(--podium-type-heading) !important;
  line-height: 1.3;
}

.app-main :where(h3, h4, h5, h6) {
  font-size: var(--podium-type-subheading) !important;
  line-height: 1.35;
}

.app-main :where(p, li, dt, dd, td, input, select, textarea) {
  font-size: var(--podium-type-body) !important;
}

.app-main :where(small, .small, .metric-note, .text-muted.small),
.badge,
[class$="-pill"],
[class*="-pill "] {
  font-size: var(--podium-type-small) !important;
}

.metric-value,
.home-summary-card > strong,
.records-stat strong,
.major-milestone-metrics > article > strong {
  font-size: var(--podium-type-display) !important;
  line-height: 1 !important;
}

/* Remove decorative colours from the superseded HR theme. Purple is the
   suite accent; green, amber and red remain reserved for semantic state. */
.settings-health,
.settings-card,
.records-hero,
.records-library-card {
  background-image: none !important;
}

.settings-health,
.settings-card,
.records-hero {
  background-color: var(--podium-surface) !important;
}

.settings-eyebrow,
.records-eyebrow,
.home-widget-kicker,
.onboarding-step-heading p,
.panel-kicker {
  color: var(--podium-accent) !important;
}

.settings-card-icon,
.records-library-icon,
.records-stat-icon,
.home-summary-icon,
.home-person-avatar {
  background: var(--podium-accent-soft) !important;
  color: var(--podium-accent-strong) !important;
}

.settings-health-item:hover,
.settings-link-list a:hover,
.records-library-card:hover,
.records-library-card:focus,
.home-launchpad-grid a:hover,
.section-nav-flyout-links a:hover,
.section-nav-flyout-links a:focus-visible,
.section-nav-flyout-links a.active {
  border-color: #c7bce7 !important;
  background: var(--podium-accent-softer) !important;
  color: var(--podium-accent-strong) !important;
}

.home-welcome-card,
.starter-journey-card,
.onboarding-hero {
  background: linear-gradient(135deg, #4d329f 0%, #7458cf 100%) !important;
}

.home-eyebrow,
.starter-journey-card .eyebrow,
.onboarding-hero .eyebrow {
  color: #e4ddf8 !important;
}

.home-launchpad-grid span,
.home-onboarding-list b,
.home-date-list time,
.home-date-list time strong,
.home-date-list time span,
.records-avatar,
.governance-risk-action,
.governance-workspace-grid a em,
.governance-eyebrow {
  color: var(--podium-accent-strong) !important;
}

.home-date-list time,
.records-avatar {
  background: var(--podium-accent-soft) !important;
}

.governance-eyebrow { color: var(--podium-accent) !important; }
.governance-panel-heading > a { color: var(--podium-accent-strong) !important; }

/* Employee pages and template libraries use the same surface and accent
   language as the rest of the Podium workspace. */
.my-profile-hero,
.my-profile-action-strip,
.my-policy-summary article,
.my-policy-card,
.sensitive-banner,
.review-template-summary article {
  border: 1px solid var(--podium-border) !important;
  border-radius: var(--podium-radius) !important;
  background-color: var(--podium-surface) !important;
  box-shadow: var(--podium-shadow-soft) !important;
}

.my-profile-avatar {
  background: linear-gradient(145deg, var(--podium-accent-strong), #7458cf) !important;
  box-shadow: 0 8px 20px rgb(77 50 159 / 18%) !important;
}

.my-profile-completion {
  background: conic-gradient(var(--podium-accent) var(--profile-progress), #e8e4f2 0) !important;
  color: var(--podium-accent-strong) !important;
}

.my-profile-action-strip:not(.is-complete) {
  border-left: 3px solid var(--podium-accent) !important;
  background-color: var(--podium-accent-softer) !important;
}

.my-profile-action-strip > a,
.review-template-card-title a,
.contract-template-card a { color: var(--podium-accent-strong); }

.my-policy-summary article { min-height: 96px; }
.my-policy-summary article.is-complete {
  border-color: #cde3d9 !important;
  background-color: #f7fbf9 !important;
}
.my-policy-summary article.is-action {
  border-color: #ebd5a6 !important;
  background-color: #fffaf0 !important;
}
.my-policy-card.needs-action { border-left: 3px solid #d79721 !important; }
.my-policy-card.is-acknowledged { border-left: 3px solid #2f8e70 !important; }
.my-policy-card > summary { min-height: 72px; }

.sensitive-banner {
  min-height: 48px;
  padding: 12px 14px;
  border-color: #ead7ad !important;
  background-color: #fff9ec !important;
  box-shadow: none !important;
}

.review-template-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.review-template-summary article {
  display: grid;
  min-height: 96px;
  align-content: space-between;
  gap: 5px;
  padding: 15px 17px;
}

.review-template-summary span {
  color: #716b78;
  font-size: var(--podium-type-eyebrow);
  font-weight: 750;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.review-template-summary strong {
  color: var(--podium-text);
  font-size: var(--podium-type-heading);
  line-height: 1.15;
}

.review-template-summary small { color: #7a7480; }
.review-template-summary article.is-ready strong { color: #216d59; }
.review-template-summary article.is-attention strong { color: #8b5a0d; }

.contract-template-library { display: grid; gap: 16px; }
.contract-template-library-header { margin: 0; }
.review-template-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(160px, .55fr);
  align-items: end;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--podium-border);
  border-radius: var(--podium-radius-small);
  background: #faf9fc;
}
.review-template-filter-actions { display: flex; align-items: center; align-self: center; gap: 6px; }
.review-template-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.review-template-card {
  display: flex;
  min-width: 0;
  min-height: 100%;
  padding: 18px;
  flex-direction: column;
  gap: 13px;
  border: 1px solid var(--podium-hairline);
  border-radius: var(--podium-radius);
  background: var(--podium-surface);
  box-shadow: var(--podium-shadow-soft);
}
.review-template-card-top,
.review-template-card-title,
.review-template-actions { display: flex; align-items: flex-start; gap: 10px; }
.review-template-card-top { justify-content: space-between; }
.review-template-card-title { min-width: 0; }
.review-template-card-title > div { min-width: 0; }
.review-template-card-title h3 { margin: 0 0 3px; }
.review-template-card-title h3 a { text-decoration: none; }
.review-template-card-title h3 a:hover { text-decoration: underline; }
.review-template-card-title span { color: #777180; font-size: var(--podium-type-small); }
.review-template-status-dot {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  margin-top: 6px;
  border-radius: 50%;
  background: #aaa5b0;
}
.review-template-status-dot.is-active { background: #2f8e70; }
.review-template-state {
  padding: 4px 8px;
  border-radius: 999px;
  background: #f0eef3;
  color: #625d69;
  font-size: var(--podium-type-small);
  font-weight: 650;
  white-space: nowrap;
}
.review-template-state.is-active { background: #eaf7f1; color: #21694f; }
.review-template-description { margin: 0; color: #716b78; }
.review-template-scope { display: flex; flex-wrap: wrap; gap: 7px; }
.review-template-scope span {
  padding: 5px 8px;
  border-radius: 999px;
  background: var(--podium-accent-soft);
  color: var(--podium-accent-strong);
  font-size: var(--podium-type-small);
  font-weight: 650;
}
.review-template-readiness {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.review-template-readiness > div {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid var(--podium-border);
  border-radius: var(--podium-radius-small);
  background: #faf9fc;
}
.review-template-readiness > div > span {
  display: inline-grid;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  place-items: center;
  border-radius: 50%;
  font-size: var(--podium-type-small);
  font-weight: 800;
}
.review-template-readiness .is-complete > span { background: #dff2ea; color: #1e7458; }
.review-template-readiness .is-missing > span { background: #ffebe5; color: #bd452f; }
.review-template-readiness strong,
.review-template-readiness small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-template-readiness strong { color: var(--podium-text); font-size: var(--podium-type-small); }
.review-template-readiness small { color: #777180; font-size: var(--podium-type-eyebrow); }
.review-template-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--podium-border);
  border-bottom: 1px solid var(--podium-border);
}
.review-template-meta > div { min-width: 0; padding: 10px 8px; }
.review-template-meta dt { color: #777180; font-size: var(--podium-type-eyebrow); font-weight: 700; }
.review-template-meta dd { margin: 3px 0 0; color: var(--podium-text); font-weight: 650; }
.review-template-actions { align-items: center; flex-wrap: wrap; padding-top: 2px; }
.review-template-actions form { margin: 0; }

/* Remove the remaining superseded magenta treatments from staged records. */
.record-tabs button:hover { color: var(--podium-accent-strong); }
.record-tabs button.active {
  background: var(--podium-accent-soft);
  color: var(--podium-accent-strong);
  box-shadow: inset 0 -3px var(--podium-accent);
}
.profile-activity-event::before { background: var(--podium-accent); }

@media (max-width: 1099.98px) {
  .review-template-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-template-grid { grid-template-columns: 1fr; }
}

@media (max-width: 767.98px) {
  .review-template-summary,
  .review-template-filters { grid-template-columns: 1fr; }
  .review-template-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-template-readiness { grid-template-columns: 1fr; }
  .review-template-card-top { flex-direction: column; }
}

@media (max-width: 767.98px) {
  html { --podium-type-display: 26px; }
}

/* Podium suite typography
   Geist is self-hosted so every application renders consistently without
   depending on an external font service. Keep hierarchy to three weights. */
body,
button,
input,
select,
textarea {
  font-family: var(--podium-font-sans);
  font-weight: var(--podium-weight-regular);
}

h1,
h2,
h3,
h4,
h5,
h6,
.page-heading h1,
.panel-header h2,
.home-welcome-copy h1,
.records-hero h1,
.governance-hero h1,
.onboarding-hero h1,
.section-landing-heading h1,
.app-main :where(h1, h2, h3, h4, h5, h6) {
  font-family: var(--podium-font-sans) !important;
  font-weight: var(--podium-weight-semibold) !important;
}

/* Identity centre type balance
   Keep section hierarchy visible without letting audit data overpower the
   compact employee controls and navigation around it. */
.identity-centre-tabs a { font-size: .78rem; }
.identity-person-switcher-copy strong { font-size: .75rem; }
.identity-person-switcher-copy span,
.identity-overview-return { font-size: .68rem; }
.identity-connection-strip { font-size: .72rem; }
.identity-employee-audit-grid .panel-header h2,
.identity-audit-history .panel-header h2 { font-size: .9rem; }
.identity-employee-audit-grid .panel-header small,
.identity-audit-history .panel-header small { font-size: .66rem; }
.identity-audit-facts dt { font-size: .62rem; }
.identity-audit-facts dd { font-size: .68rem; }
.identity-audit-history .app-table { font-size: .74rem; }
.identity-audit-history .app-table thead th { font-size: .62rem; }
.identity-audit-history .app-table > :not(caption) > * > * { padding: 11px 12px; }

.app-primary-nav .nav-link,
.app-primary-nav .nav-link > span,
.suite-app-name,
.section-nav-flyout-links a,
.persistent-section-panel a,
.workspace-section-bar a {
  font-weight: var(--podium-weight-medium) !important;
}

.btn,
.btn-sm,
.form-label,
label,
.badge,
[class$="-pill"],
[class*="-pill "],
.app-main :where(strong, b),
.detail-list dt,
.status-list dt {
  font-weight: var(--podium-weight-semibold) !important;
}

/* HR module navigator prototype
   The narrow application rail selects a module. Its durable destinations open
   in a separate, scannable panel instead of nesting accordions in the rail. */
.app-primary-nav .section-flyout-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
}

.app-primary-nav .section-flyout-item > .nav-link {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

.app-primary-nav .section-flyout-item > .section-nav-flyout {
  display: none !important;
}

.app-primary-nav .section-flyout-item.is-navigator-open > .section-nav-flyout {
  display: flex !important;
}

.app-primary-nav .section-flyout-item > .section-nav-flyout {
  position: fixed !important;
  inset: var(--hub-topbar-height) auto 0 calc(var(--suite-rail-width) + var(--hub-rail-width)) !important;
  z-index: 1090;
  flex-direction: column;
  width: min(470px, calc(100vw - var(--suite-rail-width) - var(--hub-rail-width) - 20px)) !important;
  min-width: 390px !important;
  max-width: 470px !important;
  height: auto !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  border-right: 1px solid var(--podium-border) !important;
  border-left: 1px solid var(--podium-border) !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: 14px 0 32px rgb(35 30 50 / 14%) !important;
}

.app-primary-nav .section-nav-flyout-header {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 24px 24px 20px;
  border-bottom: 1px solid var(--podium-border);
}

.app-primary-nav .section-nav-flyout-header > div {
  display: grid;
  min-width: 0;
  gap: 4px;
}

.app-primary-nav .section-nav-flyout-eyebrow {
  color: var(--podium-primary);
  font-size: 11px;
  font-weight: var(--podium-weight-semibold);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.app-primary-nav .section-nav-flyout-header strong {
  color: var(--podium-text);
  font-size: 20px;
  line-height: 1.25;
}

.app-primary-nav .section-nav-flyout-header small {
  max-width: 350px;
  color: var(--podium-text-muted);
  font-size: 13px;
  line-height: 1.45;
}

.section-nav-flyout-close {
  display: inline-grid;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--podium-border);
  border-radius: 8px;
  background: #fff;
  color: #6d6672;
}

.section-nav-flyout-close:hover,
.section-nav-flyout-close:focus-visible {
  border-color: #cfc5eb;
  background: var(--podium-primary-soft);
  color: var(--podium-primary-dark);
}

.section-nav-flyout-close svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-width: 1.7;
}

.section-nav-flyout-dashboard {
  flex: 0 0 auto;
  padding: 16px 24px 0;
}

.app-primary-nav .section-nav-flyout-dashboard > a,
.app-primary-nav .section-nav-flyout-dashboard > a:visited {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 9px 12px;
  border: 1px solid #e4deea;
  border-radius: 8px;
  background: #faf8fc;
  color: var(--podium-text);
  text-decoration: none;
}

.app-primary-nav .section-nav-flyout-dashboard > a:hover,
.app-primary-nav .section-nav-flyout-dashboard > a:focus-visible {
  border-color: #cfc5eb;
  background: var(--podium-primary-soft);
}

.app-primary-nav .section-nav-flyout-dashboard > a:focus-visible {
  outline: 2px solid var(--podium-primary);
  outline-offset: 2px;
}

.app-primary-nav .section-nav-flyout-dashboard > a.active {
  border-color: #d5c9ef;
  background: var(--podium-primary-soft);
  color: var(--podium-primary-dark);
}

.section-nav-flyout-dashboard a > span {
  display: grid;
  gap: 1px;
}

.section-nav-flyout-dashboard a small {
  color: #8a8390;
  font-size: 10px;
  font-weight: var(--podium-weight-semibold);
  letter-spacing: .075em;
  line-height: 1.2;
  text-transform: uppercase;
}

.section-nav-flyout-dashboard a strong {
  font-size: 13px;
  font-weight: 700;
}

.section-nav-flyout-dashboard svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.app-primary-nav .section-nav-flyout-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-content: start;
  gap: 22px;
  padding: 18px 24px 30px;
  overflow: auto;
  border: 0;
  scrollbar-gutter: stable;
}

.app-primary-nav .section-nav-group {
  min-width: 0;
  margin: 0;
  border: 0;
}

.app-primary-nav .section-nav-group h3 {
  margin: 0 0 7px;
  padding: 0 9px;
  color: #8a8390;
  font-size: 11px;
  font-weight: var(--podium-weight-semibold);
  letter-spacing: .075em;
  line-height: 1.3;
  text-transform: uppercase;
}

.app-primary-nav .section-nav-group-links {
  display: grid;
  gap: 3px;
}

.app-primary-nav .section-nav-flyout-links a,
.app-primary-nav .section-nav-flyout-links a:visited {
  display: flex;
  align-items: center;
  min-height: 38px;
  margin: 0;
  padding: 8px 10px;
  border-radius: 7px;
  color: #514c59;
  font-size: 13px !important;
  line-height: 1.3;
  text-decoration: none;
}

.app-primary-nav .section-nav-flyout-links a.active {
  background: var(--podium-primary-soft);
  color: var(--podium-primary-dark);
  box-shadow: inset 3px 0 0 var(--podium-primary);
  font-weight: 700;
}

.app-primary-nav .section-nav-flyout-links a:hover:not(.active) {
  background: #f7f5f8;
  color: #3f3945;
}

.app-primary-nav .section-nav-flyout-links a:focus-visible:not(.active) {
  background: #fff;
  color: #3f3945;
  outline: 2px solid var(--podium-primary);
  outline-offset: 1px;
}

.section-nav-flyout-mobile-footer {
  display: none;
}

@media (max-width: 991.98px) {
  .app-primary-nav .section-flyout-item > .section-nav-flyout {
    position: fixed !important;
    inset: var(--hub-topbar-height) 0 0 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .app-primary-nav .section-nav-flyout-header {
    padding: 18px 18px 16px;
  }

  .section-nav-flyout-dashboard {
    padding: 14px 18px 0;
  }

  .app-primary-nav .section-nav-flyout-links {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 16px 18px 24px;
  }

  .section-nav-flyout-mobile-footer {
    display: block;
    flex: 0 0 auto;
    padding: 12px 18px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--podium-border);
    background: #fff;
  }

  .section-nav-flyout-mobile-footer button {
    display: flex;
    width: 100%;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--podium-border-strong);
    border-radius: 8px;
    background: #fff;
    color: var(--podium-text);
    font-weight: var(--podium-weight-semibold);
  }

  .section-nav-flyout-mobile-footer svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
  }
}

.page-heading > div > .text-uppercase:first-child,
.page-heading > div > .panel-kicker:first-child,
.panel-kicker,
.settings-eyebrow,
[class$="-eyebrow"],
[class*="-eyebrow "],
[class$="-kicker"],
[class*="-kicker "],
.app-table thead th,
.table thead th {
  font-weight: var(--podium-weight-semibold) !important;
}

/* Suite responsive interaction contract
   Desktop keeps compact data density. Tablet and mobile use comfortable touch
   targets, while wide datasets remain contained within their own scroller. */
@media (max-width: 991.98px) {
  .app-main .btn-sm,
  .app-main button.btn-sm,
  .app-main a.btn-sm {
    min-height: 40px;
    padding: .55rem .75rem;
  }

  .navbar-toggler {
    min-width: 44px;
    min-height: 44px;
  }

  .table-responsive {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
  }

  .action-centre-filters,
  .records-filter,
  .record-tabs {
    scroll-snap-type: inline proximity;
    scrollbar-width: thin;
  }

  .action-centre-filters > *,
  .records-filter > *,
  .record-tabs > * {
    scroll-snap-align: start;
  }

  .suite-app-switcher {
    scroll-snap-type: inline proximity;
    scrollbar-width: none;
  }

  .suite-app-switcher::-webkit-scrollbar {
    display: none;
  }

  .suite-app-switcher > * {
    scroll-snap-align: start;
  }
}

@media (max-width: 767.98px) {
  .page-heading > :last-child,
  .page-heading-actions,
  .form-actions,
  .panel-header > :last-child {
    max-width: 100%;
    flex-wrap: wrap;
  }

  .dropdown-menu {
    max-width: calc(100vw - 24px);
  }
}

/* The employee directory becomes stacked cards below 576px. A later tablet
   container rule must not restore its 760px table width in that card mode. */
@container (max-width: 480px) {
  .employee-directory-table {
    width: 100%;
    min-width: 0;
  }

  .employee-directory-table-wrap {
    overflow-x: visible;
  }
}

.auth-body {
  min-height: 100vh;
  margin: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background:
    radial-gradient(circle at 15% 12%, rgb(101 71 194 / 13%), transparent 31rem),
    linear-gradient(145deg, #f8f7fc 0%, #f2f1f7 100%);
}

.auth-header {
  display: flex;
  min-height: 82px;
  align-items: center;
  padding: 18px clamp(20px, 4vw, 56px);
}

.auth-brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: var(--podium-text, #171326);
  text-decoration: none;
}

.auth-brand img {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  object-fit: contain;
  box-shadow: 0 7px 20px rgb(45 31 85 / 14%);
}

.auth-brand span { display: grid; gap: 1px; }
.auth-brand strong { font-size: 1rem; line-height: 1.2; }
.auth-brand small { color: var(--podium-muted, #706b7a); font-size: .76rem; }

.auth-main {
  width: 100%;
  padding: 28px 20px 54px;
  display: grid;
  place-items: center;
}

.auth-card {
  width: min(100%, 540px);
  padding: clamp(26px, 5vw, 42px);
  border: 1px solid rgb(55 45 74 / 14%);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 22px 60px rgb(45 31 85 / 13%);
}

.auth-card-heading { margin-bottom: 28px; text-align: center; }

.auth-eyebrow {
  color: var(--podium-primary, #6547c2);
  font-size: .73rem;
  font-weight: 750;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.auth-card-heading h1 {
  margin: 7px 0 6px;
  color: var(--podium-text, #171326);
  font-size: clamp(1.75rem, 5vw, 2.2rem);
  line-height: 1.12;
}

.auth-card-heading p,
.auth-provider-note,
.auth-invite-note { color: var(--podium-muted, #706b7a); }
.auth-card-heading p { margin: 0; }
.auth-form { display: grid; gap: 18px; }
.auth-form .alert:empty,
.auth-form .validation-summary-valid { display: none; }

.auth-form .form-control {
  min-height: 48px;
  border-radius: 9px;
}

.auth-form-options {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  font-size: .88rem;
}

.auth-form-options a { font-weight: 650; }
.auth-primary-action,
.auth-microsoft-action {
  width: 100%;
  min-height: 48px;
  justify-content: center;
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 24px 0;
  color: #918b99;
  font-size: .78rem;
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after {
  height: 1px;
  flex: 1;
  background: #e6e2eb;
  content: "";
}

.auth-microsoft-action {
  display: flex;
  align-items: center;
  gap: 10px;
}

.auth-microsoft-action svg { width: 18px; height: 18px; }

.auth-provider-note,
.auth-invite-note {
  margin: 12px 0 0;
  font-size: .78rem;
  line-height: 1.5;
  text-align: center;
}

.auth-invite-note {
  margin-top: 26px;
  padding-top: 22px;
  border-top: 1px solid #ece8f0;
}

.auth-footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 18px clamp(20px, 4vw, 56px) 24px;
  color: #817a89;
  font-size: .75rem;
}

@media (max-width: 575.98px) {
  .auth-header { min-height: 70px; padding: 14px 18px; }
  .auth-brand img { width: 36px; height: 36px; }
  .auth-main { align-items: start; padding: 18px 14px 36px; }
  .auth-card { padding: 26px 20px; border-radius: 14px; }
  .auth-form-options { align-items: flex-start; flex-direction: column; gap: 10px; }
  .auth-footer { align-items: center; flex-direction: column; padding: 12px 18px 20px; }
}

/* AAT Suite shell adapter.
   Suite.UI owns the rail, top bar, sidebar, typography and responsive shell.
   These aliases keep HR feature screens stable while their legacy feature CSS
   is progressively reduced. */
:root {
  --app-accent: #6547c2;
  --app-accent-rgb: 101, 71, 194;
  --app-accent-dark: #4d329f;
  --app-accent-soft: #f1edfb;
  --app-focus-ring: rgb(101 71 194 / 18%);
  --suite-rail-width: var(--suite-rail);
  --hub-rail-width: var(--app-sidebar-width);
  --hub-topbar-height: var(--app-topbar-height);
}

.app-sidebar .app-primary-nav,
.app-sidebar .app-primary-nav:hover,
.app-sidebar .app-primary-nav:focus-within,
.app-sidebar .app-primary-nav.has-flyout-open {
  position: static;
  width: auto;
  min-width: 0;
  height: auto;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.app-sidebar .app-primary-nav .nav-item {
  width: 100%;
  list-style: none;
}

.app-sidebar .app-primary-nav .app-nav-link {
  min-height: 42px;
  padding: 0 12px;
}

.app-sidebar .app-primary-nav .app-nav-link > .aat-icon {
  width: 18px;
  height: 18px;
  min-width: 18px;
}

.app-sidebar .app-primary-nav .app-nav-link.active {
  background: var(--app-accent-soft);
  color: var(--app-accent-dark);
  box-shadow: inset 3px 0 0 var(--app-accent);
}

.app-topbar .app-account-nav {
  flex-direction: row;
  align-items: center;
  margin: 0;
}

.hr-workspace {
  padding: 24px !important;
}

.app-sidebar-collapsed .hr-workspace {
  padding-left: 24px !important;
}

.app-primary-nav .section-flyout-item > .section-nav-flyout {
  inset: var(--app-topbar-height) auto 0 calc(var(--suite-rail) + var(--app-sidebar-width)) !important;
  width: min(470px, calc(100vw - var(--suite-rail) - var(--app-sidebar-width) - 20px)) !important;
}

@media (max-width: 767.98px) {
  .hr-workspace,
  .app-sidebar-collapsed .hr-workspace {
    padding: 16px !important;
  }
}
