:root {
  --brand: #8A0101;
  --brand-dark: #5f0000;
  --ink: #171717;
  --muted: #686868;
  --line: #e6e1dc;
  --paper: #fffdf9;
  --surface: #fff;
  --background: #f7f2ec;
  --success: #1f7a4d;
  --danger: #a11d1d;
  --radius: 20px;
  --font: "Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body {
  margin: 0;
  min-height: 100vh;
  background: linear-gradient(180deg, var(--paper), var(--background));
  color: var(--ink);
  font-family: var(--font);
  line-height: 1.5;
}
a { color: inherit; }
button, input, select, textarea { font: inherit; }
:focus-visible { outline: 3px solid rgba(37, 99, 235, 0.3); outline-offset: 2px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  padding: 0.85rem 1rem;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.site-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: min(100%, 1120px);
  margin: 0 auto;
}
.brand { display: inline-flex; align-items: center; gap: 0.65rem; color: var(--brand); font-weight: 800; text-decoration: none; }
.brand-mark { display: inline-flex; width: 2.75rem; height: 2.25rem; }
.brand-mark img { width: 100%; height: 100%; object-fit: contain; }
.header-account { display: grid; justify-items: end; gap: 0.1rem; }
.header-account form { margin: 0; }
.header-user, .header-sub-link { color: var(--muted); font-size: 0.75rem; text-decoration: none; }
.link-button {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--brand);
  cursor: pointer;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
}
.link-button:disabled {
  opacity: 0.75;
}

.app-shell { display: block; }
.side-nav {
  position: sticky;
  top: 5.6rem;
  z-index: 39;
  display: grid;
  gap: 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.side-nav-main {
  display: none;
  gap: 0.5rem;
  overflow-x: auto;
  padding: 0.75rem 1rem;
}
.nav-select {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
  padding: 0 1rem 0.65rem;
  color: var(--muted);
  font-size: 0.78rem;
  position: relative;
}
.nav-select summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.65rem;
  align-items: center;
  min-height: 2.6rem;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  list-style: none;
}
.nav-select summary::-webkit-details-marker {
  display: none;
}
.nav-select summary::after {
  content: "";
  width: 0.5rem;
  height: 0.5rem;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: translateY(-0.15rem) rotate(45deg);
}
.nav-select[open] summary::after {
  transform: translateY(0.15rem) rotate(225deg);
}
.nav-select summary span {
  color: var(--muted);
  font-weight: 700;
  text-transform: uppercase;
}
.nav-select summary strong {
  overflow: hidden;
  color: var(--ink);
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nav-select-menu {
  display: grid;
  gap: 0.15rem;
  position: absolute;
  right: 1rem;
  left: 1rem;
  z-index: 35;
  margin-top: 0.35rem;
  padding: 0.35rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(17, 24, 39, 0.12);
}
.nav-select-menu a {
  border-radius: 6px;
  text-decoration: none;
}
.nav-select-module {
  margin-top: 0.2rem;
  padding: 0.5rem 0.6rem;
  color: var(--ink);
  font-weight: 800;
}
.nav-select-sub {
  margin-left: 1.25rem;
  padding: 0.42rem 0.6rem;
  color: var(--muted);
  font-weight: 500;
}
.nav-select-menu a.active,
.nav-select-menu a:hover {
  background: #f4e8e8;
  color: var(--brand);
}
.nav-item { flex: 0 0 auto; }
.nav-item.has-subnav > a::after {
  content: "";
  display: inline-block;
  width: 0.42rem;
  height: 0.42rem;
  margin-left: 0.45rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.12rem) rotate(45deg);
}
.side-nav a { display: block; flex: 0 0 auto; padding: 0.55rem 0.8rem; border-radius: 6px; color: var(--muted); font-weight: 700; text-decoration: none; }
.side-nav a.active, .side-nav a:hover { background: #f4e8e8; color: var(--brand); }
.side-subnav {
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  padding: 0.45rem 1rem 0.65rem;
  background: #faf7f4;
  border-top: 1px solid var(--line);
}
.side-subnav a {
  padding: 0.25rem 0.65rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-size: 0.9rem;
}
.side-subnav a.active,
.side-subnav a:hover {
  background: transparent;
  color: var(--brand);
}
.side-subnav-desktop { display: none; }
.side-subnav-mobile { display: none; }

.main-content { width: min(100%, 1120px); margin: 0 auto; padding: 1.25rem 1rem 2.5rem; }
.breadcrumb-trail {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin: 0 0 0.8rem;
  color: var(--muted);
  font-size: 0.82rem;
}
.breadcrumb-trail a {
  color: inherit;
  text-decoration: none;
}
.breadcrumb-trail a:hover {
  color: var(--brand);
  text-decoration: underline;
}
.breadcrumb-trail span:last-child {
  color: var(--ink);
}
.page-heading { margin-bottom: 1.25rem; }
.eyebrow { margin: 0 0 0.25rem; color: var(--brand); font-size: 0.8rem; font-weight: 900; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0.35rem; font-size: clamp(1.7rem, 1.2rem + 2vw, 2.5rem); line-height: 1.15; }
h2 { font-size: 1.15rem; }
.page-heading p, .panel p { color: var(--muted); }

.panel, .login-panel, .module-card, .expense-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}
.panel, .login-panel, .expense-card { padding: 1rem; }
.main-content > .panel,
.main-content > form.panel,
.main-content > .prior-calendar-panel {
  margin-bottom: 1rem;
}
.dashboard-grid, .module-list, .expense-list, .benefits-layout { display: grid; gap: 1rem; }
.profile-grid {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}
.profile-detail-list {
  display: grid;
  gap: 0.85rem;
}
.profile-detail-list div {
  display: grid;
  gap: 0.15rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid var(--line);
}
.profile-detail-list div:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.profile-detail-list span {
  color: var(--muted);
  font-size: 0.82rem;
}
.profile-detail-list strong {
  font-weight: 500;
  overflow-wrap: anywhere;
}
.profile-password-panel {
  max-width: 46rem;
}
.hero-panel { background: var(--brand); color: #fff; }
.hero-panel p, .hero-panel .eyebrow { color: #fff; }
.module-card { display: grid; gap: 0.3rem; padding: 1rem; text-decoration: none; }
.module-card span { color: var(--brand); font-weight: 900; }
.module-card strong {
  font-weight: 400;
}
.admin-module-list {
  display: grid;
  gap: 0.75rem;
}
.admin-module-card {
  grid-template-columns: 3.25rem minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 1rem;
  align-items: center;
}
.admin-module-card > span:not(.admin-module-icon),
.admin-module-card > strong {
  grid-column: 2;
}
.admin-module-icon {
  grid-row: 1 / span 2;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 8px;
  border: 1px solid #efd8d8;
  background-color: #fff7f7;
  background-position: center;
  background-repeat: no-repeat;
  background-size: 2rem 2rem;
}
.admin-module-icon.icon-docs { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 9h18l6 6v24H14z'/%3E%3Cpath d='M32 9v7h6M10 14H8v25h22v-3M20 23h12M20 29h12M20 35h8'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-person { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='17' r='7'/%3E%3Cpath d='M11 39c2.5-8 8-12 13-12s10.5 4 13 12'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-user-computer { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='18' cy='16' r='6'/%3E%3Cpath d='M7 34c2-6 6-9 11-9s8 3 10 8'/%3E%3Crect x='27' y='20' width='14' height='10' rx='1'/%3E%3Cpath d='M31 36h6M34 30v6'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-keys { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='16' cy='18' r='7'/%3E%3Cpath d='M22 23l17 17M30 31l4-4M35 36l4-4M10 28l-4 4M12 31l-4 4'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-crane { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 39h18M14 39V13h10v26M9 13h29M24 13l14 9M38 13v18M34 31h8M14 20h10M14 27h10'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-beach { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 26c5-12 17-18 31-14-9 1-15 5-19 15-2-4-6-5-12-1zM20 27l-5 15M10 42h27M33 28c4 2 6 5 7 9'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-clock { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='24' cy='24' r='16'/%3E%3Cpath d='M24 14v11l8 5'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-stack { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 10h24v26H12zM16 6h24v26M8 16h24v26M16 20h12M16 27h12M16 34h8'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-stethoscope { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 8v10c0 6 4 10 9 10s9-4 9-10V8M9 8h8M27 8h8M22 28c0 7 4 12 11 12 5 0 8-3 8-7'/%3E%3Ccircle cx='41' cy='30' r='3'/%3E%3C/svg%3E"); }
.admin-module-icon.icon-table { background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 48 48' xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%238b120b' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='10' width='32' height='28' rx='2'/%3E%3Cpath d='M8 19h32M18 10v28M29 10v28M13 25h2M23 25h2M34 25h2M13 32h2M23 32h2M34 32h2'/%3E%3C/svg%3E"); }
.onboarding-progress-panel {
  display: grid;
  gap: 0.85rem;
}
.onboarding-progress {
  height: 0.65rem;
  overflow: hidden;
  border-radius: 999px;
  background: #f1ece8;
}
.onboarding-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--brand);
  transition: width 0.2s ease;
}
.onboarding-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
  gap: 0.45rem;
}
.onboarding-steps a {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--muted);
  font-size: 0.88rem;
  text-decoration: none;
}
.onboarding-steps a span {
  display: inline-grid;
  width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  border-radius: 999px;
  background: #f6eeee;
  color: var(--brand);
  font-size: 0.78rem;
}
.onboarding-steps a.active {
  border-color: #e5b7b3;
  background: #fbf1f0;
  color: var(--brand);
}
.onboarding-steps a.complete span {
  background: var(--success);
  color: #fff;
}
.onboarding-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.onboarding-cost-toggle-row {
  display: flex;
  justify-content: flex-end;
  margin-top: -0.25rem;
}
.onboarding-plan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1rem;
}
.onboarding-plan-card {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.onboarding-plan-card h3 {
  margin: 0;
  font-size: 1.05rem;
}
.onboarding-plan-card > h3 {
  margin: 0;
}
.onboarding-plan-card > h3 + p {
  color: var(--muted);
}
.onboarding-plan-sticky {
  position: sticky;
  top: 10.2rem;
  z-index: 8;
  margin: -1rem -1rem 0;
  padding: 1rem 1rem 0.85rem;
  border-radius: 10px 10px 0 0;
  border-bottom: 1px solid var(--line);
  background: #fff;
}
.onboarding-plan-sticky h3 {
  margin: 0 0 0.55rem;
}
.onboarding-plan-sticky .markdown-body,
.onboarding-plan-sticky p {
  margin: 0;
  color: var(--muted);
}
.onboarding-plan-card .markdown-body {
  color: var(--muted);
  font-size: 0.92rem;
}
.onboarding-compare-markdown {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
}
.onboarding-compare-markdown .markdown-table {
  width: 100%;
  min-width: 100%;
  table-layout: fixed;
  font-size: 0.85rem;
  line-height: 1.25;
}
.onboarding-compare-markdown .markdown-table th,
.onboarding-compare-markdown .markdown-table td {
  padding: 0.42rem 0.5rem;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.onboarding-compare-markdown .markdown-table tr {
  height: 3.05rem;
}
.onboarding-compare-markdown .markdown-table th {
  color: #fff;
}
.onboarding-compare-markdown .markdown-table th:first-child,
.onboarding-compare-markdown .markdown-table td:first-child {
  width: 34%;
}
.onboarding-compare-markdown .markdown-table td:first-child {
  color: var(--muted);
  font-weight: 600;
}
.onboarding-rate-table {
  width: 100%;
  font-size: 0.9rem;
  table-layout: fixed;
}
.onboarding-rate-table th,
.onboarding-rate-table td {
  padding: 0.5rem;
  vertical-align: middle;
}
.onboarding-rate-table th {
  background: var(--brand);
  color: #fff;
}
.onboarding-rate-table th:last-child,
.onboarding-rate-table td:last-child {
  text-align: right;
  white-space: nowrap;
}
.onboarding-rate-table th:first-child,
.onboarding-rate-table td:first-child {
  width: 58%;
  text-align: left;
}
.onboarding-rate-table label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
  font-weight: 500;
}
.onboarding-rate-table input[type="radio"] {
  flex: 0 0 auto;
  width: auto;
  padding: 0;
  margin: 0;
  box-shadow: none;
}
.onboarding-rate-table label span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.onboarding-policy-list {
  display: grid;
  gap: 0.75rem;
}
.onboarding-policy-item {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.onboarding-policy-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 1rem;
  cursor: pointer;
  list-style: none;
}
.onboarding-policy-item summary::-webkit-details-marker {
  display: none;
}
.onboarding-policy-item summary span {
  color: var(--ink);
  font-weight: 600;
}
.onboarding-policy-item summary small {
  color: var(--muted);
  font-size: 0.82rem;
  white-space: nowrap;
}
.onboarding-policy-item .markdown-body {
  padding: 0 1rem 1rem;
  color: var(--muted);
  line-height: 1.55;
}
.onboarding-group-summary {
  max-width: 64rem;
}
.onboarding-upload-block {
  display: grid;
  gap: 0.75rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.onboarding-upload-block h3 {
  margin-bottom: 0;
}
.onboarding-retirement-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 0.75rem;
}
.onboarding-retirement-summary div {
  display: grid;
  gap: 0.2rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.onboarding-retirement-summary span {
  color: var(--muted);
  font-size: 0.82rem;
}
.onboarding-retirement-summary strong {
  font-size: 1.35rem;
  font-weight: 500;
}
.admin-form-section { display: grid; gap: 1rem; padding-top: 0.25rem; }
.admin-record-section {
  display: grid;
  gap: 1rem;
}
.admin-record-section summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  box-sizing: border-box;
  min-height: 2rem;
  padding: 0.15rem 0;
  overflow: hidden;
  list-style: none;
  cursor: pointer;
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.35;
}
.admin-record-section summary::-webkit-details-marker { display: none; }
.admin-record-section summary::after {
  content: "";
  width: 0.7rem;
  height: 0.7rem;
  flex: 0 0 auto;
  margin-right: 0.25rem;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(45deg);
  transition: transform 0.15s ease;
}
.admin-record-section[open] summary::after {
  transform: rotate(225deg);
}
.admin-record-section > *:not(summary) {
  margin-top: 1rem;
}
.admin-form-section + .admin-form-section {
  margin-top: 0.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line);
}
.admin-allotment-grid,
.admin-check-grid {
  display: grid;
  gap: 0.75rem;
}
.admin-mini-card {
  display: grid;
  gap: 0.75rem;
  padding: 0.9rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.admin-inline-form {
  margin-top: 1rem;
  margin-bottom: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.admin-table th,
.admin-table td {
  vertical-align: middle;
}
.admin-table th:nth-child(n+5),
.admin-table td:nth-child(n+5) {
  text-align: center;
}
.timesheet-week-panel form {
  grid-template-columns: minmax(0, 32rem);
  justify-content: start;
  align-items: start;
  gap: 0.75rem;
}
.timesheet-week-panel .action-row {
  margin-bottom: 0;
  align-items: center;
  justify-content: flex-start;
}
.timesheet-week-panel .button {
  width: auto;
  white-space: nowrap;
}
.table-wrap.timesheet-table-wrap {
  overflow-x: visible;
  container-type: inline-size;
}
.timesheet-table {
  display: grid;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  font-size: 0.82rem;
}
.timesheet-table thead,
.timesheet-table tbody,
.timesheet-table tfoot {
  display: grid;
  width: 100%;
  min-width: 0;
}
.timesheet-table tr {
  display: grid;
  grid-template-columns: minmax(6.5rem, 1fr) repeat(5, minmax(1.8rem, 0.24fr)) minmax(2.1rem, 0.28fr) 1.7rem;
  align-items: center;
  width: 100cqw;
  min-width: 0;
}
.timesheet-table th,
.timesheet-table td {
  display: block;
  min-width: 0;
  padding: 0.16rem 0.12rem;
  vertical-align: middle;
}
.timesheet-table th {
  display: grid;
  align-content: center;
  text-align: center;
  overflow: hidden;
  font-size: 0.56rem;
  line-height: 1.15;
  min-height: 1.25rem;
  text-overflow: clip;
  white-space: nowrap;
}
.timesheet-table thead th,
.timesheet-table tfoot th,
.timesheet-table tfoot td {
  display: grid;
  align-content: center;
  height: 1.7rem;
  min-height: 1.7rem;
}
.timesheet-table thead th:last-child,
.timesheet-table tfoot td:last-child {
  background: transparent;
  border-bottom-color: transparent;
}
.timesheet-table tbody td {
  display: grid;
  align-content: center;
  justify-items: center;
  height: 1.7rem;
}
.timesheet-table tbody td:first-child {
  justify-items: stretch;
}
.timesheet-table th small,
.timesheet-table th span {
  display: block;
}
.timesheet-project-col {
  width: auto;
  text-align: left !important;
}
.timesheet-number-col {
  width: auto;
}
.timesheet-table .numeric-cell {
  width: auto;
  min-width: 0;
  max-width: none;
  text-align: center;
}
.timesheet-action-col {
  width: auto;
}
.timesheet-table select,
.timesheet-table input {
  min-width: 0;
  max-width: 100%;
  height: 1.45rem;
  min-height: 1.45rem;
  padding: 0.08rem 0.12rem;
  border-radius: 3px;
  font-size: 0.68rem;
  line-height: 1;
}
.timesheet-table select { width: 100%; }
.timesheet-table input.timesheet-hours-input {
  display: block;
  width: 100%;
  max-width: 1.55rem;
  min-width: 0 !important;
  margin: 0 auto;
  padding-left: 0;
  padding-right: 0;
}
.timesheet-table select {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  appearance: auto;
}
.timesheet-table td,
.timesheet-table th {
  min-width: 0;
}
.timesheet-hours-input {
  text-align: center;
}
.timesheet-hours-input::-webkit-outer-spin-button,
.timesheet-hours-input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}
.timesheet-hours-input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
.timesheet-row-total,
.timesheet-table tfoot td {
  display: grid;
  align-content: center;
  justify-items: center;
  overflow: hidden;
  text-align: center;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.icon-button {
  display: inline-grid;
  place-items: center;
  width: 1.25rem;
  height: 1.25rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--brand);
  cursor: pointer;
  font-weight: 500;
  font-size: 0.62rem;
}
.timesheet-table [data-timesheet-remove] {
  display: grid;
  place-content: center;
  width: 1.45rem;
  height: 1.45rem;
  min-height: 1.45rem;
  padding: 0;
  border-color: #efd8d8;
  border-radius: 999px;
  background: #fff7f7;
  color: var(--brand);
  font-size: 0;
  transition: background 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease;
}
.timesheet-table [data-timesheet-remove]::before {
  content: "";
  display: block;
  width: 0.82rem;
  height: 0.82rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v5M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='M10 11v5M14 11v5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.timesheet-table [data-timesheet-remove]:hover,
.timesheet-table [data-timesheet-remove]:focus-visible {
  border-color: var(--brand);
  background: var(--brand);
  color: #fff;
  transform: translateY(-1px);
}
.timesheet-card-list {
  display: grid;
  gap: 0.65rem;
  margin-top: 1rem;
}
.timesheet-mini-card {
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line);
  text-decoration: none;
}
.timesheet-mini-card span {
  color: var(--muted);
}

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--brand);
  border-radius: 8px;
  background: var(--brand);
  color: #fff;
  cursor: pointer;
  font-weight: 500;
  text-decoration: none;
}
.button-secondary { background: #fff; color: var(--brand); }
.button-danger { border-color: var(--danger); background: var(--danger); }
.button[data-timesheet-add] {
  justify-self: start;
  width: auto;
  background: var(--brand);
  color: #fff;
}
.button-external::after {
  content: "";
  width: 0.9rem;
  height: 0.9rem;
  margin-left: 0.45rem;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.action-row { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; margin-bottom: 1rem; }
.record-actions { justify-content: flex-end; }
.module-subnav {
  display: flex;
  gap: 0.5rem;
  margin: -0.5rem 0 1rem;
  overflow-x: auto;
}
.module-subnav a {
  flex: 0 0 auto;
  padding: 0.45rem 0.75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  text-decoration: none;
}
.module-subnav a.active,
.module-subnav a:hover {
  border-color: var(--brand);
  color: var(--brand);
}

.form-stack { display: grid; gap: 1rem; }
label { display: grid; gap: 0.35rem; font-weight: 700; }
input, select, textarea {
  width: 100%;
  padding: 0.72rem 0.9rem;
  border: 1px solid #d9dfe8;
  border-radius: 12px;
  background: #fff;
  color: #111827;
  font-weight: 400;
  box-shadow: 0 1px 0 rgba(17, 24, 39, 0.02);
}
textarea { min-height: 7rem; resize: vertical; }
.icon-field {
  --control-height: 3.7rem;
  position: relative;
  display: block;
  width: 100%;
  min-height: var(--control-height);
}
.icon-field:has(textarea) {
  display: grid;
}
.icon-field::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4.25rem;
  border: 1px solid #d9dfe8;
  border-right: 0;
  border-radius: 12px 0 0 12px;
  background-color: #f6f7fb;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.25rem 1.25rem;
  pointer-events: none;
  z-index: 1;
}
.icon-field::after {
  content: "";
  position: absolute;
  left: 1.55rem;
  top: 50%;
  width: 1.25rem;
  height: 1.25rem;
  transform: translateY(-50%);
  background: #6b7280;
  pointer-events: none;
  z-index: 2;
  -webkit-mask: var(--field-icon) center / contain no-repeat;
  mask: var(--field-icon) center / contain no-repeat;
}
.icon-field:has(textarea)::after { top: 1.2rem; transform: none; }
.icon-field:has(textarea)::before {
  height: 100%;
  bottom: auto;
}
.icon-field input,
.icon-field select,
.icon-field textarea {
  padding-left: 5.45rem;
  font-size: 1.05rem;
}
.icon-field input,
.icon-field select {
  min-height: var(--control-height);
}
.icon-field textarea {
  display: block;
  width: 100%;
  min-height: 8rem;
}
.icon-field select {
  appearance: none;
  padding-right: 2.75rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--brand) 50%), linear-gradient(135deg, var(--brand) 50%, transparent 50%);
  background-position: calc(100% - 1.15rem) 50%, calc(100% - 0.75rem) 50%;
  background-size: 0.45rem 0.45rem, 0.45rem 0.45rem;
  background-repeat: no-repeat;
}
.combo-field {
  position: relative;
  display: block;
}
.combo-field input[type="search"] {
  min-height: var(--control-height);
  padding-right: 3.25rem;
}
.combo-arrow {
  position: absolute;
  right: 0.75rem;
  top: 0;
  z-index: 3;
  width: 2.5rem;
  height: var(--control-height);
  border: 0;
  background: transparent;
  cursor: pointer;
}
.combo-arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -35%);
  border-left: 0.42rem solid transparent;
  border-right: 0.42rem solid transparent;
  border-top: 0.55rem solid var(--brand);
}
.combo-menu {
  position: absolute;
  top: calc(100% + 0.25rem);
  left: 0;
  right: 0;
  z-index: 30;
  max-height: 16rem;
  overflow: auto;
  padding: 0.35rem;
  border: 1px solid #d9dfe8;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(17, 24, 39, 0.12);
}
.custom-select {
  position: static;
  display: block;
}
.native-select-hidden {
  position: absolute;
  width: 1px !important;
  height: 1px !important;
  min-height: 1px !important;
  opacity: 0;
  pointer-events: none;
}
.custom-select-button {
  position: relative;
  width: 100%;
  min-height: var(--control-height);
  padding: 0.72rem 3rem 0.72rem 5.45rem;
  border: 1px solid #d9dfe8;
  border-radius: 12px;
  background: #fff;
  color: #111827;
  font: inherit;
  font-size: 1.05rem;
  font-weight: 750;
  text-align: left;
  cursor: pointer;
}
.custom-select-button::after {
  content: "";
  position: absolute;
  right: 1.15rem;
  top: 50%;
  transform: translateY(-35%);
  border-left: 0.42rem solid transparent;
  border-right: 0.42rem solid transparent;
  border-top: 0.55rem solid var(--brand);
}
.custom-select-button:disabled {
  cursor: not-allowed;
  color: #737373;
  background: #f8fafc;
}
.custom-select-menu {
  position: absolute;
  top: calc(var(--control-height) + 0.25rem);
  left: 0;
  right: 0;
  z-index: 35;
  max-height: 16rem;
  overflow: auto;
  padding: 0.35rem;
  border: 1px solid #d9dfe8;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(17, 24, 39, 0.12);
}
.custom-select-menu[hidden] { display: none; }
.custom-select-menu button {
  display: block;
  width: 100%;
  padding: 0.7rem 0.85rem 0.7rem 5.1rem;
  border: 0;
  border-radius: 7px;
  background: #fff;
  color: #111827;
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}
.custom-select-menu button:hover,
.custom-select-menu button:focus,
.custom-select-menu button.selected {
  background: #f4e8e8;
  color: var(--brand);
  outline: 0;
}
.custom-select-group-label {
  display: block;
  padding: 0.55rem 0.85rem 0.2rem 5.1rem;
  color: var(--ink);
  font-weight: 700;
}
.combo-menu[hidden] { display: none; }
.combo-menu button {
  display: block;
  width: 100%;
  padding: 0.7rem 0.85rem 0.7rem 5.1rem;
  border: 0;
  border-radius: 7px;
  background: #fff;
  color: #111827;
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-weight: 700;
}
.combo-menu button:hover,
.combo-menu button:focus-visible {
  background: #f4e8e8;
  color: var(--brand);
}
.quick-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: -0.45rem;
}
.quick-picks button {
  padding: 0.35rem 0.65rem;
  border: 1px solid #efd8d8;
  border-radius: 999px;
  background: #fff7f7;
  color: var(--brand);
  cursor: pointer;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 800;
}
.icon-field input::placeholder,
.icon-field textarea::placeholder { color: #737373; font-weight: 700; }
.icon-field input:read-only {
  background-color: #fbfbfc;
  color: #4b5563;
}
.icon-user { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
.icon-building { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21h16'/%3E%3Cpath d='M6 21V4h12v17'/%3E%3Cpath d='M9 8h1M14 8h1M9 12h1M14 12h1M9 16h1M14 16h1'/%3E%3C/svg%3E"); }
.icon-tag { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.6 13.4 13.4 20.6a2 2 0 0 1-2.8 0L3 13V3h10l7.6 7.6a2 2 0 0 1 0 2.8Z'/%3E%3Ccircle cx='8' cy='8' r='1'/%3E%3C/svg%3E"); }
.icon-calendar { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E"); }
.icon-dollar { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v20M17 6H9.5a3.5 3.5 0 0 0 0 7H14a3.5 3.5 0 0 1 0 7H6'/%3E%3C/svg%3E"); }
.icon-percent { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 5 5 19'/%3E%3Ccircle cx='7' cy='7' r='2'/%3E%3Ccircle cx='17' cy='17' r='2'/%3E%3C/svg%3E"); }
.icon-bag { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l1 14H5L6 7Z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E"); }
.icon-card { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 10h18M7 15h4'/%3E%3C/svg%3E"); }
.icon-text { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h12M4 18h8'/%3E%3C/svg%3E"); }
.icon-file { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6'/%3E%3C/svg%3E"); }
.icon-mail { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E"); }
.icon-lock { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E"); }
.icon-link { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.1 0l2-2a5 5 0 0 0-7.1-7.1l-1.1 1.1'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.1 0l-2 2A5 5 0 0 0 12 20.1l1.1-1.1'/%3E%3C/svg%3E"); }
.icon-hash { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 9h16M4 15h16M10 3 8 21M16 3l-2 18'/%3E%3C/svg%3E"); }
.icon-edit { --field-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); }
.form-grid { display: grid; gap: 1rem; min-width: 0; }
.form-grid > label { min-width: 0; }
.admin-employee-form,
.admin-employee-form .admin-record-section,
.admin-employee-form .form-grid {
  max-width: 100%;
  min-width: 0;
}
.admin-employee-form .check-row {
  min-height: 3.7rem;
  align-self: end;
}
.timeoff-date-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: 1rem;
  align-items: end;
}
.timeoff-date-row label { min-width: 0; }
.timeoff-or {
  display: grid;
  place-items: center;
  min-height: 3.7rem;
  padding: 0 0.15rem;
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.04em;
}
.timeoff-request-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
  justify-content: flex-end;
}
.timeoff-request-actions .button {
  width: auto;
}
@media (max-width: 640px) {
  .timesheet-week-panel form {
    grid-template-columns: minmax(0, 1fr);
  }
  .timesheet-week-panel .action-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    width: 100%;
  }
  .timesheet-week-panel .button {
    width: 100%;
  }
  .request-row-head {
    grid-template-columns: minmax(0, 1fr);
  }
  .modify-details {
    justify-self: start;
  }
  .timeoff-date-row {
    grid-template-columns: minmax(0, 1fr);
  }
  .timeoff-or {
    min-height: auto;
    padding: 0;
  }
  .review-reject-form {
    grid-template-columns: minmax(0, 1fr);
  }
  .review-reject-form .button {
    justify-self: end;
  }
}
.check-row { display: flex; align-items: center; gap: 0.5rem; }
.check-row input { width: auto; }
.field-note { color: var(--muted); font-size: 0.8rem; font-weight: 400; }
.alert { margin-bottom: 1rem; padding: 0.85rem 1rem; border: 1px solid #efd8d8; border-radius: 8px; background: #fff7f7; color: var(--brand); font-weight: 700; }
.empty-state { color: var(--muted); }
.status-toast {
  position: fixed;
  right: 1rem;
  bottom: 1rem;
  z-index: 120;
  max-width: min(24rem, calc(100vw - 2rem));
  padding: 0.8rem 1rem;
  border-radius: 8px;
  background: var(--success);
  color: #fff;
  font-weight: 400;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0.75rem);
  transition: opacity 160ms ease, transform 160ms ease;
}
.status-toast.visible { opacity: 1; transform: translateY(0); }
.status-toast.error { background: var(--danger); }
.button.loading { gap: 0.5rem; }
.button-spinner {
  width: 0.9rem;
  height: 0.9rem;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 999px;
  animation: spin 700ms linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.controls-panel { display: grid; gap: 0.75rem; margin-bottom: 1rem; }
.expense-section { margin-top: 1rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.expense-section summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  cursor: pointer;
  color: var(--ink);
  font-size: 1rem;
  font-weight: 800;
  list-style: none;
}
.expense-section summary::-webkit-details-marker { display: none; }
.expense-section summary::after {
  content: "";
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(45deg);
}
.expense-section[open] summary::after { transform: rotate(225deg); }
.expense-section .expense-list, .expense-section .empty-state { margin: 0 1rem 1rem; }
.expense-section-alert {
  border-color: #e2b8b8;
  background: #fffafa;
}
.expense-section-alert summary span {
  color: var(--brand);
}
.expense-card { display: grid; gap: 0.65rem; border-radius: 8px; text-decoration: none; transition: opacity 180ms ease, transform 180ms ease; }
.expense-card span { color: var(--muted); }
.expense-tile-link {
  color: inherit;
  text-decoration: none;
}
.expense-tile-button {
  display: grid;
  gap: 1rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}
.expense-tile {
  gap: 1rem;
  padding: 1rem;
  color: var(--ink);
}
.expense-tile-head,
.expense-tile-foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
}
.expense-tile-head > div { display: grid; gap: 0.2rem; min-width: 0; }
.expense-tile-person {
  color: var(--muted);
  font-size: 0.78rem;
}
.expense-tile-type {
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.15;
}
.expense-tile-project {
  overflow-wrap: anywhere;
  color: var(--ink);
  font-size: 0.95rem;
  font-weight: 500;
}
.expense-tile-note {
  overflow: hidden;
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.expense-tile-amount {
  color: #000;
  font-size: 1.6rem;
  font-weight: 850;
  line-height: 1.05;
  white-space: nowrap;
}
.expense-tile-foot {
  align-items: center;
  color: var(--ink);
  font-weight: 500;
}
.expense-tile-foot > span:first-child { color: var(--ink); }
.expense-tile-review-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  min-width: min(13rem, 44vw);
}
.expense-tile-review-actions form {
  margin: 0;
}
.expense-tile-review-actions .button {
  width: 100%;
  min-height: 2rem;
  padding: 0.35rem 0.55rem;
}
.expense-tile-review-note {
  margin: 0;
  color: var(--muted);
  font-size: 0.9rem;
}
.attention-panel { margin: 1rem 0; border-color: #f1caca; background: #fffafa; }
.attention-card { border-color: #e6b8b8; }
.review-card.is-removing { opacity: 0; transform: translateX(0.75rem); }
.review-tabs { display: flex; gap: 0.5rem; overflow-x: auto; margin-bottom: 1rem; }
.review-tabs a { flex: 0 0 auto; padding: 0.6rem 0.9rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--muted); font-weight: 800; text-decoration: none; }
.review-tabs a.active, .review-tabs a:hover { border-color: var(--brand); background: #f4e8e8; color: var(--brand); }
.metric-grid { display: grid; gap: 1rem; margin-bottom: 1rem; }
.metric { min-width: 0; padding: 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.metric span { display: block; color: var(--muted); font-size: 0.9rem; }
.metric strong { color: var(--brand); font-size: 1.45rem; }
.batch-panel {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: end;
  margin-bottom: 1rem;
}
.batch-panel form {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: end;
  margin: 0;
}
.batch-panel form:first-child { flex: 0 0 auto; }
.batch-panel form:last-child { flex: 1 1 22rem; }
.batch-panel .icon-field { flex: 1 1 18rem; }
.batch-panel .button { flex: 0 0 auto; min-width: 10rem; }
.compact { font-size: 0.85rem; }
.detail-grid {
  display: grid;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.detail-grid div,
.info-tile {
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: linear-gradient(180deg, #fff, #fffafa);
}
.detail-grid span,
.info-tile span {
  display: block;
  margin-bottom: 0.2rem;
  color: var(--muted);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.detail-grid strong,
.info-tile strong {
  display: block;
  color: var(--ink);
  font-size: 1.05rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}
.onboarding-admin-summary {
  grid-template-columns: 1fr;
}
.onboarding-admin-summary div {
  display: grid;
  grid-template-columns: minmax(8rem, 12rem) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}
.onboarding-admin-summary span {
  margin-bottom: 0;
}
.onboarding-admin-summary strong {
  font-weight: 500;
}
.detail-grid.onboarding-admin-summary {
  grid-template-columns: 1fr;
}
.expense-detail .detail-grid div:nth-child(4) {
  border-color: #efd8d8;
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
}
.expense-detail .detail-grid div:nth-child(4) span,
.expense-detail .detail-grid div:nth-child(4) strong {
  color: #fff;
}
.expense-detail .detail-grid div:nth-child(4) strong {
  font-size: 1.55rem;
}
.expense-detail-card {
  display: grid;
  gap: 1.5rem;
}
.expense-detail-grid {
  display: grid;
  gap: 1rem 2rem;
}
.expense-detail-grid div {
  min-width: 0;
}
.expense-detail-grid span {
  display: block;
  margin-bottom: 0.3rem;
  color: var(--muted);
  font-size: 0.92rem;
  font-weight: 500;
}
.expense-detail-grid strong {
  display: block;
  color: #000;
  font-size: 1rem;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.expense-detail-note {
  display: grid;
  gap: 1rem;
}
.expense-detail-note h2,
.expense-receipts-panel h2 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 500;
}
.expense-detail-note p {
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.5;
}
.expense-detail-note.reviewer {
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.expense-rejection-note {
  display: grid;
  gap: 0.55rem;
  padding: 1rem;
  border: 1px solid #e2b8b8;
  border-radius: 8px;
  background: #fff4f4;
}
.expense-rejection-note h2 {
  margin: 0;
  color: var(--brand);
  font-size: 1.1rem;
  font-weight: 650;
}
.expense-rejection-note p {
  margin: 0;
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.45;
}
.expense-detail-actions {
  display: grid;
  gap: 0.55rem;
}
.expense-detail-actions .button-secondary {
  justify-self: center;
  width: auto;
  min-height: 2rem;
  padding: 0.35rem 0;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
}
.expense-detail-card .button,
.expense-receipts-panel .button {
  font-weight: 500;
}
.expense-detail-modal {
  display: grid;
  gap: 1.25rem;
}
.expense-detail-modal .modal-scroll {
  display: grid;
  gap: 1.25rem;
}
.expense-detail-modal h2 {
  margin: 0;
  padding-right: 2.75rem;
}
.expense-receipts-panel {
  display: grid;
  gap: 1rem;
}
.expense-receipts-panel.in-modal {
  padding: 0;
  border: 0;
  box-shadow: none;
}
.receipt-detail-list {
  display: grid;
  gap: 0.75rem;
}
.receipt-detail-card {
  display: grid;
  gap: 0.55rem;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.receipt-detail-card strong {
  overflow-wrap: anywhere;
  color: #000;
  font-size: 0.98rem;
  line-height: 1.25;
}
.receipt-detail-card span {
  color: var(--ink);
  font-size: 0.9rem;
}
.review-list, .compact-list { display: grid; gap: 1rem; }
.review-card, .existing-file {
  min-width: 0;
  max-width: 100%;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.review-card { display: grid; gap: 1rem; padding: 1rem; transform-origin: top center; transition: opacity 180ms ease, transform 180ms ease, max-height 180ms ease; }
.review-card.is-removing,
.expense-tile.is-removing { opacity: 0; transform: translateY(-6px); max-height: 0; margin: 0; padding-top: 0; padding-bottom: 0; overflow: hidden; }
.review-head { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.review-head div { display: grid; gap: 0.2rem; }
.review-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; margin: 0; }
.review-details div {
  min-width: 0;
  padding: 0.75rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffafa;
}
dt, dd { margin: 0; }
dt { color: var(--muted); font-size: 0.72rem; font-weight: 900; letter-spacing: 0.04em; text-transform: uppercase; }
dd { overflow-wrap: anywhere; }
.receipt-list { display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: center; }
.receipt-list.compact-list { display: grid; align-items: stretch; }
.pending-receipt-list {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.65rem;
}
.pending-receipt-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffafa;
}
.pending-receipt-row span {
  min-width: 0;
  overflow-wrap: anywhere;
  color: var(--muted);
  font-size: 0.92rem;
}
.pending-receipt-remove {
  min-height: 2rem;
  padding: 0.35rem 0.6rem;
}
.existing-file { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 10px 12px; font-size: 0.88rem; }
.existing-file strong { display: block; overflow-wrap: anywhere; word-break: break-word; white-space: normal; max-width: 100%; }
.receipt-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
.receipt-actions.single { grid-template-columns: 1fr; }
.review-actions {
  display: grid;
  gap: 0.75rem;
  align-items: start;
}
.review-link-actions { display: flex; justify-content: flex-end; }
.review-link-actions .button { width: auto; }
.review-primary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.review-actions form {
  display: grid;
  gap: 0.5rem;
  align-content: start;
  justify-items: start;
  margin: 0;
}
.review-actions form .icon-field {
  justify-self: stretch;
}
.review-actions .button {
  align-self: start;
  justify-self: start;
  min-height: 2.75rem;
}
.review-primary-actions form { display: block; }
.review-primary-actions .button {
  width: auto;
  min-width: 10rem;
}
.review-reject-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}
.review-reject-form .button {
  justify-self: end;
  width: auto;
  min-width: 7rem;
}
.request-row { display: grid; gap: 0.65rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.request-row-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}
.request-row-head p {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
  align-items: center;
  margin: 0;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.3;
}
.request-row-head p strong { color: var(--muted); }
.record-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}
.record-actions .button {
  width: auto;
}
.request-review-card { margin-bottom: 0.75rem; border: 1px solid var(--line); border-radius: 8px; background: #fff; overflow: hidden; }
.request-review-card button {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  width: 100%;
  padding: 1rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.request-review-card button:hover,
.request-review-card button:focus-visible {
  background: linear-gradient(90deg, #fffafa, #fff);
  outline: 2px solid #efd8d8;
  outline-offset: -2px;
}
.request-review-card span {
  display: grid;
  gap: 0.2rem;
}
.request-review-card strong {
  font-size: 1.05rem;
}
.request-review-card span:last-child {
  justify-items: end;
  min-width: 6rem;
  color: var(--brand);
}
.request-review-card span:last-child strong {
  font-size: 1.55rem;
  line-height: 1;
}
.request-review-card small {
  color: var(--muted);
  font-weight: 650;
}
.approved-timeoff-list {
  display: grid;
  border-top: 1px solid var(--line);
}
.approved-timeoff-row {
  display: grid;
  grid-template-columns: minmax(10rem, 1.2fr) minmax(8rem, 0.7fr) minmax(10rem, 1fr);
  gap: 0.75rem;
  align-items: center;
  width: 100%;
  padding: 0.45rem 0.2rem;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font: inherit;
  font-size: 0.92rem;
  text-align: left;
}
.approved-timeoff-row:hover,
.approved-timeoff-row:focus-visible {
  background: #fff7f7;
}
.approved-timeoff-row span {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 400;
}
.inline-details { border: 1px solid var(--line); border-radius: 8px; padding: 0.75rem; background: #fffafa; }
.inline-details summary { cursor: pointer; color: var(--brand); font-weight: 900; }
.modify-details {
  justify-self: end;
  width: auto;
  border: 0;
  padding: 0;
  background: transparent;
}
.modify-details summary {
  display: inline-flex;
  justify-content: center;
  min-height: 2.4rem;
  padding: 0.55rem 0.9rem;
  border: 1px solid var(--brand);
  border-radius: 8px;
  background: #fff;
  color: var(--brand);
  font-weight: 500;
  list-style: none;
}
.modify-details summary::-webkit-details-marker { display: none; }
.modify-details[open] {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffafa;
}
.modify-details[open] summary {
  margin-bottom: 0.75rem;
}
.calendar-grid { display: grid; gap: 1rem; margin-top: 1rem; }
.calendar-card { display: grid; gap: 0.75rem; }
.holiday-list,
.request-list {
  display: grid;
  gap: 0.75rem;
}
.holiday-list p {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  justify-content: space-between;
  margin: 0;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--line);
}
.holiday-list p:last-child { border-bottom: 0; }
.holiday-list span { color: var(--muted); }
.holiday-list strong { font-weight: 500; }
.request-section {
  display: block;
  overflow: hidden;
}
.request-section label,
.request-section .icon-field,
.request-section .custom-select,
.request-section .timeoff-date-row {
  max-width: 100%;
  min-width: 0;
}
.request-section > summary {
  cursor: pointer;
  color: var(--ink);
  font-size: 1.15rem;
  font-weight: 500;
  list-style: none;
}
.request-section > summary::-webkit-details-marker { display: none; }
.request-section > summary::after {
  content: "";
  float: right;
  width: 0.55rem;
  height: 0.55rem;
  margin-top: 0.35rem;
  border-right: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(45deg);
}
.request-section[open] > summary {
  margin-bottom: 1rem;
}
.request-section[open] > summary::after {
  transform: rotate(225deg);
}
.prior-calendar-panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}
.prior-calendar-panel summary {
  padding: 1rem;
  cursor: pointer;
  color: var(--brand);
  font-weight: 900;
  list-style: none;
}
.prior-calendar-panel summary::-webkit-details-marker { display: none; }
.prior-calendar-panel summary::after {
  content: "";
  display: inline-block;
  width: 0.55rem;
  height: 0.55rem;
  margin-left: 0.65rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(0.12rem) rotate(225deg);
}
.prior-calendar-panel[open] summary {
  border-bottom: 1px solid var(--line);
}
.prior-calendar-panel[open] summary::after {
  transform: translateY(-0.12rem) rotate(45deg);
}
.prior-calendar-panel .calendar-grid {
  margin: 0;
  padding: 1rem;
}
.calendar-weekdays, .calendar-cells { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.25rem; }
.calendar-weekdays span:nth-child(7n+1),
.calendar-weekdays span:nth-child(7n),
.calendar-cells .calendar-cell:nth-child(7n+1),
.calendar-cells .calendar-cell:nth-child(7n) {
  display: none;
}
.calendar-weekdays span { color: var(--muted); font-size: 0.72rem; font-weight: 900; text-align: center; text-transform: uppercase; }
.calendar-cell { min-height: 5rem; padding: 0.35rem; border: 1px solid var(--line); border-radius: 6px; background: #fff; font-size: 0.75rem; }
.calendar-cell.empty { visibility: hidden; }
.calendar-cell.past { opacity: 0.55; background: #faf7f3; }
.calendar-cell strong { display: block; margin-bottom: 0.25rem; color: var(--muted); }
.calendar-event { display: block; margin-top: 0.2rem; padding: 0.16rem 0.25rem; border-radius: 4px; background: #f4e8e8; color: var(--brand); font-weight: 800; line-height: 1.25; }
button.calendar-event {
  width: 100%;
  border: 0;
  text-align: left;
  cursor: pointer;
  font: inherit;
  font-weight: 500;
}
button.calendar-event:hover,
button.calendar-event:focus-visible {
  filter: brightness(0.97);
}
.calendar-event.fixed_holiday { background: #f1f5f9; color: #334155; }
.calendar-event.approved { background: #e7f7ee; color: var(--success); }
.calendar-event.pending { background: #fff7e6; color: var(--warning, #9a6500); }
.calendar-event.fixed_holiday,
.calendar-event.fixed_holiday.approved { background: #f1f5f9; color: #334155; }
.calendar-event.floating_holiday { background: #eef2ff; color: #3730a3; }
.policy-alert {
  margin-bottom: 1.5rem;
  border-color: #f0b7b7;
  background: #fffafa;
}
.policy-alert h2 { font-size: 1.25rem; }
.policy-alert p { margin-bottom: 0; font-size: 1.05rem; }
.policy-mobile-jump {
  display: grid;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  position: sticky;
  top: 9.1rem;
  z-index: 8;
  padding: 0.5rem 0 0.75rem;
  background: linear-gradient(180deg, var(--paper), var(--background));
}
.policy-mobile-jump .custom-select-button {
  padding-left: 1rem;
}
.policy-mobile-jump .custom-select-menu button,
.policy-mobile-jump .custom-select-group-label {
  padding-left: 1rem;
}
.policy-mobile-jump .custom-select-menu button {
  font-weight: 400;
}
.policy-layout {
  --policy-sticky-top: 5.75rem;
  display: grid;
  gap: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  overflow: visible;
}
.policy-toc {
  display: none;
  padding: 1rem;
  border-right: 1px solid var(--line);
  background: #fff;
}
.policy-toc > strong {
  color: var(--brand);
  font-size: 1rem;
}
.policy-toc-links {
  display: grid;
  gap: 0.1rem;
  max-height: 70vh;
  overflow: auto;
  padding-right: 0.45rem;
}
.policy-toc-category {
  margin-top: 0.55rem;
  color: var(--ink);
  font-weight: 700;
}
.policy-toc a {
  padding: 0.14rem 0.35rem;
  border-radius: 4px;
  color: var(--muted);
  line-height: 1.25;
  text-decoration: none;
}
.policy-toc a.active,
.policy-toc a:hover {
  background: #f4e8e8;
  color: var(--brand);
}
.policy-body {
  display: grid;
  gap: 1.4rem;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.policy-category-group {
  display: grid;
  gap: 1.1rem;
}
.policy-category-group > h2 {
  margin: 0;
  color: var(--brand);
  font-size: 1.25rem;
}
.policy-doc-section {
  scroll-margin-top: 12rem;
  padding-bottom: 1.35rem;
  border-bottom: 1px solid var(--line);
}
.policy-section-head {
  display: grid;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
  background: #fff;
}
.policy-section-head h3 {
  margin: 0;
  font-size: 1.25rem;
}
.policy-section-head span {
  color: var(--muted);
  font-style: italic;
}
.policy-copy {
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.55;
}
.policy-copy h3,
.policy-copy h4,
.policy-copy h5,
.policy-copy h6,
.benefits-group-body h3,
.benefits-group-body h4,
.benefits-plan-body h3,
.benefits-plan-body h4 {
  margin: 1.15rem 0 0.45rem;
  color: var(--ink);
}
.policy-copy ul,
.benefits-group-body ul,
.benefits-plan-body ul {
  margin-top: 0.35rem;
  padding-left: 1.35rem;
}
.policy-copy li,
.onboarding-policy-item .markdown-body li {
  color: inherit;
}
.markdown-table {
  margin: 0.75rem 0 1rem;
}
.policy-ack-bar {
  position: sticky;
  bottom: 0;
  display: flex;
  justify-content: flex-end;
  padding-top: 1rem;
  background: linear-gradient(180deg, rgba(255,255,255,0), #fff 35%);
}
.policy-admin-list {
  display: grid;
  gap: 0.75rem;
}
.policy-admin-card {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.policy-admin-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem;
  cursor: pointer;
  list-style: none;
}
.policy-admin-card summary::-webkit-details-marker { display: none; }
.policy-admin-card summary span:first-child {
  display: grid;
  gap: 0.1rem;
}
.policy-admin-card small {
  color: var(--muted);
}
.policy-admin-card form {
  padding: 0.85rem;
  border-top: 1px solid var(--line);
}
.status-pill, .benefits-enrolled-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  padding: 0.16rem 0.5rem;
  border-radius: 999px;
  background: #f4e8e8;
  color: var(--brand);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
}
.status-pill.success { background: #e7f7ee; color: var(--success); }
.status-pill.danger { background: #fff0f0; color: var(--danger); }
.benefits-enrolled-badge { background: #e7f7ee; color: var(--success); }
.metric-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; }
.metric-row div { padding: 0.75rem; border: 1px solid var(--line); border-radius: 8px; background: #fffafa; }
.metric-row span { display: block; color: var(--muted); font-size: 0.75rem; font-weight: 800; text-transform: uppercase; }
.metric-row strong { color: var(--brand); font-size: 1.4rem; }
.timeoff-balance-tiles {
  display: grid;
  gap: 0.85rem;
  margin-bottom: 1rem;
}
.timeoff-balance-tile {
  display: grid;
  gap: 0.8rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.timeoff-balance-tile > div:first-child {
  display: grid;
  gap: 0.1rem;
}
.timeoff-balance-tile span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.timeoff-balance-tile strong {
  color: var(--brand);
  font-size: 2rem;
  line-height: 1;
}
.timeoff-balance-tile small {
  color: var(--muted);
  font-weight: 750;
}
.timeoff-progress {
  position: relative;
  height: 0.8rem;
  overflow: hidden;
  border-radius: 999px;
  background: #f1f5f9;
}
.timeoff-progress span {
  position: absolute;
  inset-block: 0;
  display: block;
}
.timeoff-progress .used { left: 0; background: var(--brand); }
.timeoff-progress .pending { background: #d59a2b; }
.timeoff-balance-tile footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.75rem;
}
.timeoff-balance-tile footer span {
  position: relative;
  padding-left: 0.85rem;
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0;
  text-transform: none;
}
.timeoff-balance-tile footer span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 999px;
  background: #f1f5f9;
}
.timeoff-balance-tile footer span:nth-child(1)::before { background: var(--brand); }
.timeoff-balance-tile footer span:nth-child(2)::before { background: #d59a2b; }
.admin-balance-list {
  display: grid;
  gap: 1rem;
}
.admin-balance-row {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
}
.admin-balance-row h3,
.admin-balance-meter h4 {
  margin: 0;
}
.admin-balance-row h3 {
  font-size: 1rem;
}
.admin-balance-meters {
  display: grid;
  gap: 1rem;
}
.admin-balance-meter {
  display: grid;
  gap: 0.65rem;
}
.admin-balance-meter h4 {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
}
.admin-progress {
  position: relative;
  height: 0.8rem;
  overflow: hidden;
  border-radius: 999px;
  background: #f1f5f9;
}
.admin-progress span {
  position: absolute;
  inset-block: 0;
  display: block;
}
.admin-progress .used { left: 0; background: var(--brand); }
.admin-progress .pending { background: #d59a2b; }
.admin-progress .available { background: #5ba84d; }
.admin-balance-meter footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 0.8rem;
}
.admin-balance-meter footer span {
  position: relative;
  padding-left: 0.85rem;
  color: var(--muted);
  font-size: 0.8rem;
}
.admin-balance-meter footer span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 0.48rem;
  height: 0.48rem;
  border-radius: 999px;
  background: #f1f5f9;
}
.admin-balance-meter footer .used::before { background: var(--brand); }
.admin-balance-meter footer .pending::before { background: #d59a2b; }
.admin-balance-meter footer .available::before { background: #5ba84d; }
.admin-balance-meter footer .total::before { background: #f1f5f9; }
.dashboard-timeoff-sections {
  display: grid;
  gap: 1rem;
}
.dashboard-todo-list {
  display: grid;
  gap: 0.65rem;
}
.dashboard-todo-list a {
  display: grid;
  grid-template-columns: 4rem minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  padding: 0.85rem 1rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
}
.dashboard-todo-list a:hover,
.dashboard-todo-list a:focus-visible {
  border-color: #e7b8b4;
  background: #fffafa;
}
.dashboard-todo-list strong {
  color: var(--brand);
  font-size: 1.35rem;
  font-weight: 500;
  text-align: center;
}
.dashboard-todo-list span {
  color: var(--muted);
}
.dashboard-month-panel {
  display: grid;
  gap: 0.75rem;
}
.dashboard-calendar-head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}
.dashboard-calendar-head h2 {
  margin: 0;
  text-align: center;
}
.dashboard-calendar-head .button {
  width: 2.6rem;
  min-height: 2.6rem;
  padding: 0;
  font-size: 1.3rem;
}
.dashboard-calendar-cells .calendar-cell {
  min-height: 4.2rem;
}
.dashboard-timeoff-sections h3 {
  margin-bottom: 0.45rem;
  font-size: 1rem;
}
.dashboard-plain-list {
  display: grid;
  gap: 0.35rem;
}
.dashboard-plain-list p {
  margin: 0;
  color: var(--ink);
}
.staff-timeoff-list {
  display: grid;
  gap: 0.55rem;
}
.staff-timeoff-list button {
  display: grid;
  gap: 0.05rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.staff-timeoff-list button:hover strong,
.staff-timeoff-list button:focus-visible strong {
  color: var(--brand);
}
.staff-timeoff-list strong {
  font-weight: 500;
}
.staff-timeoff-list span {
  color: var(--muted);
  font-size: 0.88rem;
  font-weight: 500;
}

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; background: #fff; }
table.has-numeric-columns { table-layout: auto; }
col.numeric-column { width: 8.5rem; min-width: 8.5rem; }
th, td { padding: 0.65rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
th { background: var(--brand); color: #fff; font-size: 0.78rem; text-transform: uppercase; }
.timeoff-balance-table {
  width: auto;
  min-width: min(100%, 36rem);
}
.timeoff-balance-table th,
.timeoff-balance-table td {
  padding: 0.5rem 0.65rem;
}
.timeoff-balance-table col.numeric-column {
  width: 5.25rem;
  min-width: 5.25rem;
}
.timeoff-balance-table td.numeric-cell,
.timeoff-balance-table th.numeric-cell {
  width: 5.25rem;
  min-width: 5.25rem;
  max-width: 5.25rem;
}
.timeoff-balance-table th {
  line-height: 1.12;
  white-space: normal;
}
td.numeric-cell,
th.numeric-cell {
  width: 8.5rem;
  min-width: 8.5rem;
  max-width: 8.5rem;
  text-align: center;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
td.numeric-cell { font-weight: 750; }
.payroll-table textarea { min-width: 16rem; min-height: 5rem; font-family: var(--font); }
.compact-list { display: grid; gap: 0.35rem; min-width: 12rem; }
.payroll-expense-choice { align-items: flex-start; font-weight: 600; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.is-selected-benefit-row td { background: #f1fbf5; color: #145c35; font-weight: 800; }

.benefits-group { padding: 0; overflow: hidden; }
.benefits-group-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.9rem;
  align-items: start;
  padding: 1.25rem;
  cursor: pointer;
  list-style: none;
}
.benefits-group-summary > div {
  display: grid;
  gap: 0.45rem;
}
.benefits-group-summary h2,
.benefits-group-summary p {
  margin: 0;
}
.benefits-group-summary::after, .benefits-plan-summary::after { content: ""; width: 0.55rem; height: 0.55rem; margin-top: 0.45rem; border-right: 2px solid var(--brand); border-bottom: 2px solid var(--brand); transform: rotate(45deg); }
.benefits-group[open] > .benefits-group-summary::after, .benefits-plan-card[open] > .benefits-plan-summary::after { transform: rotate(225deg); }
.benefits-year-pill {
  justify-self: end;
  min-width: 0;
  padding: 0.35rem 0.75rem;
  border: 1px solid #efd8d8;
  border-radius: 999px;
  background: #fff7f7;
  color: var(--brand);
  line-height: 1;
  text-align: center;
}
.benefits-group-body, .benefits-plan-body { display: grid; gap: 1rem; padding: 1rem; }
.benefits-provider-bar {
  display: grid;
  gap: 0.75rem;
  align-items: center;
  padding: 0.85rem;
  border: 1px solid #efd8d8;
  border-radius: 8px;
  background: #fffafa;
}
.benefits-provider-bar > div {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: baseline;
}
.benefits-provider-bar span {
  color: var(--muted);
  font-weight: 500;
}
.benefits-provider-bar strong {
  font-weight: 650;
}
.benefits-group-selected {
  border-color: #cfe9d8;
  box-shadow: inset 0 0 0 1px #dff3e6;
}
.benefits-plan-card { border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.benefits-plan-selected {
  border-color: #acdcbf;
  background: linear-gradient(180deg, #f6fcf8 0%, #fff 42%);
  box-shadow: inset 0 0 0 1px #dff3e6;
}
.benefits-plan-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.75rem 0.85rem;
  cursor: pointer;
  list-style: none;
}
.benefits-plan-summary strong { min-width: 0; font-weight: 650; }
.benefits-current-election {
  display: grid;
  gap: 0.25rem;
  width: fit-content;
  max-width: 100%;
  padding: 0.7rem 0.85rem;
  border: 1px solid #cfe9d8;
  border-radius: 8px;
  background: #f6fcf8;
}
.benefits-current-election span {
  color: #2f7a47;
  font-size: 0.78rem;
  text-transform: uppercase;
}
.benefits-current-election strong {
  color: #145c35;
  font-weight: 500;
}
.benefit-doc-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}
.benefit-doc-list .button {
  width: auto;
}
.benefit-overview-docs {
  margin-bottom: 1rem;
}
.benefits-plan-body table {
  width: min(100%, 42rem);
}
.benefits-plan-body table:has(tr:only-child) {
  display: none;
}
.benefits-plan-body th,
.benefits-plan-body td {
  padding-right: 1rem;
}
.benefits-plan-body th:not(:first-child),
.benefits-plan-body td:not(:first-child) {
  width: 8.5rem;
  text-align: center;
}

.onboarding-plan-card .onboarding-compare-markdown {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table {
  display: block;
  width: 100% !important;
  min-width: 100% !important;
  table-layout: auto;
  font-size: 0.85rem;
  line-height: 1.18;
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table tbody {
  display: block;
  width: 100%;
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table tr {
  display: grid;
  grid-template-columns: minmax(7.2rem, 34%) minmax(0, 1fr);
  align-items: center;
  width: 100%;
  min-height: 3.85rem;
  border-bottom: 1px solid var(--line);
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table tr:first-child {
  min-height: 2.45rem;
  background: var(--brand);
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table th,
.onboarding-plan-card .onboarding-compare-markdown .markdown-table td {
  display: block;
  width: auto !important;
  padding: 0.45rem 0.65rem;
  border-bottom: 0;
  overflow-wrap: break-word;
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table th {
  color: #fff;
}
.onboarding-plan-card .onboarding-compare-markdown .markdown-table td:first-child {
  color: var(--muted);
  font-weight: 650;
}

button,
.button,
.custom-select-menu button,
.combo-menu button,
.quick-picks button,
.staff-timeoff-list button,
.request-review-card button,
.review-modal-actions .button,
.reject-form .button {
  font-weight: 500;
}

.login-page { display: grid; place-items: center; padding: 1rem; }
.login-panel { width: min(100%, 420px); }
.login-brand { margin-bottom: 1rem; }
.inline-form { display: grid; grid-template-columns: minmax(0, 1fr) 16rem auto; gap: 0.75rem; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid var(--line); }
.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(23, 23, 23, 0.55);
}
.modal-backdrop[hidden] { display: none !important; }
.modal-card {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  width: min(100%, 920px);
  height: min(90vh, 760px);
  overflow: hidden;
  border-radius: 12px;
  background: #fff;
}
.modal-body { position: relative; min-height: 0; background: #f7f2ec; }
.modal-header,
.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
  align-items: center;
  padding: 0.75rem 1rem;
  border-top: 1px solid var(--line);
  background: #fff;
}
.modal-header { justify-content: space-between; }
.receipt-preview { width: 100%; height: 100%; object-fit: contain; border: 0; }
.modal-loading { position: absolute; inset: 0; display: grid; place-items: center; gap: 0.5rem; color: var(--muted); font-weight: 800; }
.modal {
  position: fixed;
  inset: 0;
  z-index: 65;
  display: grid;
  place-items: center;
  padding: 1rem;
  background: rgba(23, 23, 23, 0.55);
  overflow: hidden;
}
.modal[hidden] { display: none !important; }
.modal-panel {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  width: min(100%, 820px);
  max-width: calc(100vw - 2rem);
  max-height: min(90vh, 760px);
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
  padding: 0;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(17, 24, 39, 0.24);
}
.modal-panel::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 3.75rem;
  left: 0;
  height: 3.25rem;
  pointer-events: none;
  opacity: 0;
  transition: opacity 160ms ease;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 82%);
}
.modal-panel::before {
  content: "Scroll for more";
  position: absolute;
  right: 1rem;
  bottom: 4.25rem;
  z-index: 2;
  padding: 0.25rem 0.55rem;
  border: 1px solid #efd8d8;
  border-radius: 999px;
  background: rgba(255, 250, 250, 0.95);
  color: var(--brand);
  font-size: 0.78rem;
  font-weight: 500;
  pointer-events: none;
  opacity: 0;
  transform: translateY(0.25rem);
  transition: opacity 160ms ease, transform 160ms ease;
}
.modal-panel.modal-has-more::after,
.modal-panel.modal-has-more::before {
  opacity: 1;
}
.modal-panel.modal-has-more::before {
  transform: translateY(0);
}
.modal-scroll {
  min-height: 0;
  min-width: 0;
  overflow: auto;
  padding: 1.25rem;
}
.modal-scroll > *,
.modal-panel * {
  min-width: 0;
}
.modal-footer {
  min-width: 0;
  flex-wrap: wrap;
}
.modal-footer .button {
  flex: 0 0 auto;
}
.modal-panel h1,
.modal-panel h2,
.modal-panel h3,
.modal-panel p,
.modal-panel strong,
.modal-panel span {
  overflow-wrap: anywhere;
}
.modal-close-hidden {
  display: none !important;
}
.modal-close {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  width: 2.25rem;
  height: 2.25rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  font-weight: 900;
}
.timeoff-review-modal {
  display: grid;
  gap: 1rem;
}
.timeoff-review-modal .modal-scroll {
  display: grid;
  gap: 1rem;
}
.timeoff-review-modal h2,
.timeoff-review-modal p {
  margin: 0;
}
.timeoff-review-modal h2 {
  padding-right: 2.75rem;
  color: var(--ink);
  font-size: clamp(1.55rem, 1rem + 2vw, 2.35rem);
  line-height: 1.05;
}
.timeoff-review-modal .modal-scroll > p {
  color: var(--muted);
  font-size: 1.02rem;
  font-weight: 700;
}
.timeoff-review-modal .detail-grid {
  padding-top: 0.25rem;
}
.timeoff-review-modal .detail-grid div:first-child {
  border-color: #efd8d8;
  background: linear-gradient(135deg, var(--brand), var(--brand-dark));
  color: #fff;
}
.timeoff-review-modal .detail-grid div:first-child span,
.timeoff-review-modal .detail-grid div:first-child strong {
  color: #fff;
}
.timeoff-review-modal .detail-grid div:first-child strong {
  font-size: 2rem;
}
.review-note {
  display: grid;
  gap: 0.35rem;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fffafa;
}
.review-note span { color: var(--muted); }
.review-modal-actions {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: auto auto;
  justify-content: end;
  align-items: end;
}
.review-modal-actions form { margin: 0; }
.review-modal-actions > form:first-child {
  grid-column: 1;
  grid-row: 2;
}
.review-modal-actions .button {
  justify-self: end;
  width: auto;
  min-width: 9rem;
}
.reject-form {
  display: contents;
}
.reject-form label {
  grid-column: 1 / -1;
  grid-row: 1;
  width: 100%;
}
.reject-form .button {
  grid-column: 2;
  grid-row: 2;
}

.permissions-matrix-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  border: 1px solid var(--line);
  border-radius: 8px;
  overscroll-behavior-x: contain;
}
.permission-role-order {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: end;
  margin-bottom: 0.75rem;
}
.permission-role-order label {
  width: min(100%, 20rem);
  font-weight: 500;
}
.permission-role-order select {
  min-height: 2.6rem;
  border-radius: 8px;
}
.permission-role-move-buttons {
  display: inline-flex;
  gap: 0.4rem;
  min-height: 2.6rem;
  align-items: center;
}
.permission-role-move-buttons button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.6rem;
  height: 2.6rem;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: var(--brand);
  cursor: pointer;
  font-size: 1.05rem;
}
.permission-role-move-buttons button:disabled {
  opacity: 0.35;
  cursor: default;
}
.panel:has(.permissions-matrix-wrap),
.panel:has(.permissions-matrix-wrap) form {
  min-width: 0;
  max-width: 100%;
}
.permissions-matrix {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}
.permissions-matrix th,
.permissions-matrix td {
  min-width: 7.25rem;
  padding: 0.55rem 0.65rem;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  text-align: center;
  vertical-align: middle;
}
.permissions-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 6;
  background: var(--brand);
  color: #fff;
  font-size: 0.78rem;
  text-transform: uppercase;
}
.permissions-matrix .sticky-col {
  position: sticky;
  z-index: 5;
  text-align: left;
}
.permissions-matrix thead .sticky-col { z-index: 8; }
.permissions-matrix .module-col {
  left: 0;
  min-width: 6.5rem;
  max-width: 6.5rem;
}
.permissions-matrix .permission-col {
  left: 6.5rem;
  min-width: 14rem;
  max-width: 14rem;
}
.permissions-matrix tbody .module-col,
.permissions-matrix tbody .permission-col {
  background: #fffaf7;
}
.permissions-matrix .module-cell {
  color: var(--brand);
  text-transform: capitalize;
}
.permissions-matrix .permission-cell span,
.permissions-matrix .permission-cell small {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.2;
}
.permissions-matrix .permission-cell span {
  color: var(--ink);
  font-weight: 500;
}
.permissions-matrix .permission-cell small {
  margin-top: 0.15rem;
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 400;
}
.permission-verb {
  min-width: 4.5rem !important;
  color: var(--muted);
}
.permission-cell-toggle label {
  display: inline-flex;
  gap: 0.35rem;
  align-items: center;
  justify-content: center;
  font-weight: 400;
}
.permission-cell-toggle input {
  width: auto;
  min-width: 0;
  padding: 0;
  box-shadow: none;
}
.permission-cell-toggle span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.15rem;
  min-height: 1.55rem;
  border-radius: 999px;
  background: #f5eee9;
  color: var(--brand);
  font-size: 0.82rem;
}
.permission-cell-toggle input:not(:checked) + span {
  background: #f5f5f5;
  color: var(--muted);
}
.permissions-actions {
  margin-top: 1rem;
}

@media (min-width: 760px) {
  .app-shell {
    display: block;
  }
  .side-nav {
    position: sticky;
    top: 65px;
    display: block;
    overflow-x: visible;
    min-height: 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    box-shadow: 0 2px 12px rgba(17, 24, 39, 0.04);
  }
  .side-nav-main {
    display: flex;
    gap: 0.35rem;
    overflow-x: visible;
    width: min(100%, 1120px);
    margin: 0 auto;
    padding: 0.75rem 1rem;
  }
  .nav-select {
    display: none;
  }
  .nav-item {
    position: relative;
    flex: 0 0 auto;
  }
  .side-nav a { width: auto; }
  .side-subnav {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 30;
    min-width: 13rem;
    max-width: 18rem;
    padding: 0.45rem;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 16px 36px rgba(17, 24, 39, 0.14);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.25rem);
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
  }
  .nav-item:hover .side-subnav-desktop,
  .nav-item:focus-within .side-subnav-desktop {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
  .side-subnav a {
    white-space: normal;
    padding: 0.45rem 0.55rem;
    border-radius: 6px;
  }
  .side-subnav a.active,
  .side-subnav a:hover {
    background: #f4e8e8;
    color: var(--brand);
  }
  .side-subnav-mobile { display: none; }
  .side-subnav-desktop { display: flex; }
  .side-nav.nav-collapsed .side-nav-main,
  .side-nav.nav-collapsed .side-subnav-mobile {
    display: none;
  }
  .side-nav.nav-collapsed .nav-select {
    display: block;
    width: min(100%, 1120px);
    margin: 0 auto;
  }
  .onboarding-plan-sticky {
    top: 3.7rem;
  }
  .side-nav.nav-collapsed .nav-select summary {
    width: min(100%, 32rem);
    margin: 0 auto;
  }
  .side-nav.nav-collapsed .nav-select-menu {
    right: max(1rem, calc((100% - 32rem) / 2));
    left: max(1rem, calc((100% - 32rem) / 2));
  }
  .main-content { padding: 2rem; }
  .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-grid { grid-template-columns: minmax(0, 1fr); max-width: 46rem; }
  .dashboard-span-2 { grid-column: span 2; }
  .metric-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .expense-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-actions { grid-template-columns: minmax(0, 1fr); }
  .form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid.three { grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
  .admin-employee-form .form-grid.three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-allotment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-check-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .timesheet-table tr { grid-template-columns: minmax(10rem, 1fr) repeat(5, minmax(2.25rem, 0.26fr)) minmax(2.6rem, 0.3fr) 1.7rem; }
  .timesheet-table { font-size: 0.78rem; }
  .timesheet-table th { font-size: 0.62rem; }
  .timesheet-table select,
  .timesheet-table input { font-size: 0.72rem; }
  .request-row-head { grid-template-columns: minmax(0, 1fr) auto; }
  .modify-details { width: auto; }
  .modify-details[open] {
    grid-column: 1 / -1;
    width: 100%;
  }
  .modify-details summary {
    float: right;
  }
  .timeoff-balance-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-balance-meters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dashboard-timeoff-sections { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-weekdays, .calendar-cells { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .calendar-weekdays span:nth-child(7n+1),
  .calendar-weekdays span:nth-child(7n),
  .calendar-cells .calendar-cell:nth-child(7n+1),
  .calendar-cells .calendar-cell:nth-child(7n) {
    display: block;
  }
  .calendar-cells .calendar-cell:nth-child(7n+1),
  .calendar-cells .calendar-cell:nth-child(7n) {
    background: #f8fafc;
  }
  .calendar-cells .calendar-cell.empty:nth-child(7n+1),
  .calendar-cells .calendar-cell.empty:nth-child(7n) {
    visibility: hidden;
  }
  .controls-panel { grid-template-columns: minmax(0, 1fr) 14rem; }
  .detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .policy-mobile-jump { display: none; }
  .policy-layout { grid-template-columns: 18rem minmax(0, 1fr); align-items: start; }
  .policy-toc {
    position: sticky;
    top: var(--policy-sticky-top);
    display: grid;
    gap: 0.75rem;
    align-self: start;
    height: calc(100vh - var(--policy-sticky-top) - 1rem);
    max-height: calc(100vh - var(--policy-sticky-top) - 1rem);
    overflow: hidden;
  }
  .policy-toc-links {
    display: grid;
    max-height: none;
    min-height: 0;
    overflow: auto;
  }
  .policy-category-group > h2 {
    position: sticky;
    top: var(--policy-sticky-top);
    z-index: 5;
    padding: 0.45rem 0;
    background: #fff;
  }
  .policy-section-head {
    position: sticky;
    top: calc(var(--policy-sticky-top) + 2.55rem);
    z-index: 4;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    border-bottom: 1px solid var(--line);
    padding: 0.45rem 0 0.65rem;
  }
  .benefits-provider-bar { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .panel, .login-panel, .expense-card, .module-card { padding: 1.25rem; }
}
