:root {
  --brand: #e31d2f;
  --brand-dark: #a81220;
  --brand-soft: #fff6f7;
  --tambo-purple: #af1280;
  --ink: #141210;
  --ink-2: #3c342c;
  --muted: #6b625a;
  --faint: #a59b8f;
  --line: #e3e2df;
  --line-strong: #cccbc7;
  --surface: #ffffff;
  --canvas: #ffffff;
  --header: #f6f6f4;
  --table-header: #eceeeb;
  --workbench: #f7f7f5;
  --field: #f4f4f1;
  --field-line: #e0dfdb;
  --risk: #c4341f;
  --risk-soft: #fbe9e6;
  --warning: #a87d2c;
  --warning-soft: #fef4e0;
  --good: #4a6b3f;
  --good-soft: #ebf5ec;
  --blue: #8f1721;
  --chart-demand: #af1280;
  --chart-current: #6b625a;
  --chart-target: #4a6b3f;
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Consolas, monospace;
  --text-2xs: .65625rem;
  --text-xs: .71875rem;
  --text-sm: .75rem;
  --text-base: .84375rem;
  --shadow: 0 1px 0 rgba(0, 0, 0, .03), 0 10px 30px rgba(0, 0, 0, .07);
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }

html, body { min-width: 320px; min-height: 100%; margin: 0; }

body {
  background: var(--canvas);
  font-size: var(--text-base);
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body.requirement-detail-active { overflow: hidden; }

body.central-auth-pending > .topbar,
body.central-auth-pending > .app-frame,
body.central-auth-pending > dialog,
body.central-auth-pending > .drawer-backdrop,
body.central-auth-pending > .requirement-detail-backdrop,
body.central-auth-pending > .requirement-detail-drawer,
body.central-auth-pending > .assistant-drawer { visibility: hidden; }

.central-login {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #f5f5f3;
}
.central-login[hidden] { display: none; }
.central-login-card {
  width: min(100%, 400px);
  padding: 30px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: 0 22px 60px rgba(31, 24, 20, .1);
}
.central-login-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 34px;
  color: var(--ink);
  font-size: .875rem;
  font-weight: 650;
}
.central-login-brand img { object-fit: contain; }
.central-login-progress { color: var(--muted); font-size: .8125rem; }
.central-login form h1 { margin: 0 0 8px; font-size: 1.5rem; letter-spacing: -.035em; }
.central-login form > p { margin: 0 0 22px; color: var(--muted); line-height: 1.55; }
.central-login form label { display: grid; gap: 6px; margin-top: 14px; }
.central-login form label > span {
  color: var(--muted);
  font-size: .6875rem;
  font-weight: 650;
}
.central-login input,
.central-login select {
  width: 100%;
  height: 42px;
  padding: 0 11px;
  border: 1px solid var(--field-line);
  border-radius: 3px;
  background: var(--surface);
}
.central-login .button { width: 100%; min-height: 42px; margin-top: 20px; }
.central-login .central-login-error {
  margin: 12px 0 0;
  padding: 9px 10px;
  background: var(--risk-soft);
  color: var(--risk);
  font-size: .75rem;
}

button, input, select { font: inherit; }

button { color: inherit; }

button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid rgba(227, 29, 47, .2);
  outline-offset: 1px;
}

.topbar {
  position: sticky;
  z-index: 30;
  top: 0;
  display: flex;
  align-items: center;
  height: 54px;
  padding: 0 18px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}

.brand {
  display: inline-flex;
  height: 54px;
  align-items: center;
  gap: 10px;
  width: max-content;
  margin-right: 18px;
  padding-right: 18px;
  border-right: 1px solid var(--line);
  color: var(--ink);
  text-decoration: none;
}

.brand img { width: 32px; height: 32px; object-fit: contain; }
.brand span { display: grid; line-height: 1.05; }
.brand strong { font-size: .8125rem; font-weight: 600; letter-spacing: -.01em; }

.primary-nav { display: flex; align-self: stretch; gap: 0; }

.nav-group {
  position: relative;
  display: flex;
  align-self: stretch;
}
.nav-group[hidden] { display: none; }

.nav-group > summary {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 14px;
  color: var(--muted);
  font-size: .8125rem;
  font-weight: 500;
  list-style: none;
  cursor: pointer;
}
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after {
  position: absolute;
  right: 14px;
  bottom: -1px;
  left: 14px;
  height: 2px;
  background: transparent;
  content: "";
}
.nav-group > summary:hover,
.nav-group[open] > summary { background: rgba(255, 255, 255, .45); color: var(--ink); }
.nav-group.active > summary { color: var(--ink); font-weight: 700; }
.nav-group.active > summary::after { background: var(--ink); }
.nav-group[open] > summary span { transform: rotate(180deg); }
.nav-group-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% - 1px);
  left: 0;
  display: grid;
  min-width: 190px;
  padding: 6px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.primary-nav .nav-group-menu button {
  min-height: 38px;
  padding: 0 10px;
  text-align: left;
  white-space: nowrap;
}
.primary-nav .nav-group-menu button::after { display: none; }
.primary-nav .nav-group-menu button.active { background: var(--field); }

.primary-nav button {
  position: relative;
  min-width: 0;
  padding: 0 14px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: .8125rem;
  font-weight: 500;
  cursor: pointer;
}

.primary-nav button::after {
  position: absolute;
  bottom: -1px;
  right: 14px;
  left: 14px;
  height: 2px;
  background: transparent;
  content: "";
}

.primary-nav button:hover { color: var(--ink); background: rgba(255, 255, 255, .45); }
.primary-nav button.active { color: var(--ink); font-weight: 700; }
.primary-nav button.active::after { background: var(--ink); }

.topbar-context {
  display: flex;
  align-self: stretch;
  align-items: stretch;
  gap: 0;
  margin-left: auto;
  border-left: 1px solid var(--line);
}

.planning-service-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  border-right: 1px solid var(--line);
  color: var(--muted);
  font-size: .625rem;
  font-weight: 600;
  white-space: nowrap;
}
.planning-service-status::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #79927f;
  content: "";
}
.planning-service-status.processing::before {
  background: #bc7a23;
  animation: service-status-pulse 1s ease-in-out infinite alternate;
}
.planning-service-status.error::before,
.planning-service-status.read_only::before { background: #aa4d43; }
@keyframes service-status-pulse {
  from { opacity: .35; }
  to { opacity: 1; }
}

.week-context {
  display: flex;
  min-width: 236px;
  align-items: center;
  padding: 0 18px;
  border-right: 1px solid var(--line);
  line-height: 1.25;
}
.week-context strong { color: var(--muted); font-size: var(--text-xs); font-weight: 600; white-space: nowrap; }

.assistant-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 14px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: .6875rem;
  font-weight: 400;
  letter-spacing: .02em;
  cursor: pointer;
}

.assistant-button:hover { background: var(--surface); color: var(--ink); }
.data-button { border-right: 1px solid var(--line); }
.assistant-button:last-of-type { border-right: 0; }
.assistant-button:hover { color: var(--brand-dark); }

.central-user-context { position: relative; display: flex; align-self: stretch; }
.central-user-context > summary {
  display: flex;
  min-width: 150px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  font-size: .6875rem;
  list-style: none;
  cursor: pointer;
}
.central-user-context > summary::-webkit-details-marker { display: none; }
.central-user-context > summary:hover,
.central-user-context[open] > summary { background: var(--surface); }
.central-user-context > summary strong { font-weight: 650; }
.central-user-context[open] > summary span { transform: rotate(180deg); }
.central-user-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% - 1px);
  right: 0;
  min-width: 150px;
  padding: 6px;
  border: 1px solid var(--line);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.central-logout {
  width: 100%;
  min-height: 36px;
  padding: 0 10px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: .65625rem;
  text-align: left;
  cursor: pointer;
}
.central-logout:hover { background: var(--surface); color: var(--ink); }

.hr-workspace { padding: 22px 18px 40px; }
.hr-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}
.hr-heading h1 { margin: 0 0 5px; font-size: 1.35rem; letter-spacing: -.03em; }
.hr-heading p { margin: 0; color: var(--muted); }
.hr-simulation-notice,
.hr-source {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  padding: 4px 7px;
  border: 1px solid #e6d3a3;
  background: var(--warning-soft);
  color: #76591f;
  font-size: .625rem;
  font-weight: 650;
  white-space: nowrap;
}
.hr-source.confirmed { border-color: #bed3be; background: var(--good-soft); color: var(--good); }
.hr-tabs { display: flex; gap: 20px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.hr-tabs button {
  position: relative;
  padding: 12px 2px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.hr-tabs button[aria-selected="true"] { color: var(--ink); }
.hr-tabs button[aria-selected="true"]::after {
  position: absolute; right: 0; bottom: -1px; left: 0; height: 2px;
  background: var(--tambo-purple); content: "";
}
.hr-tabs button span { margin-left: 5px; color: var(--faint); font-family: var(--font-mono); font-size: .625rem; }
.hr-toolbar {
  display: flex;
  align-items: end;
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  border-top: 0;
  background: var(--header);
}
.hr-toolbar label { display: grid; gap: 4px; }
.hr-toolbar label > span { color: var(--muted); font-size: .625rem; font-weight: 650; }
.hr-toolbar input,
.hr-toolbar select { height: 34px; min-width: 170px; padding: 0 9px; border: 1px solid var(--field-line); background: white; }
.hr-toolbar input { min-width: 250px; }
.hr-result-count { margin-left: auto; padding-bottom: 9px; color: var(--muted); font-size: .6875rem; }
.hr-toolbar-action { align-self: end; margin-left: auto; white-space: nowrap; }
.hr-toolbar-action + .hr-result-count { margin-left: 0; }
.hr-table-wrap { overflow: auto; max-height: calc(100vh - 246px); border: 1px solid var(--line); border-top: 0; }
.hr-data-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.hr-data-table th {
  position: sticky;
  z-index: 2;
  top: 0;
  padding: 9px 10px;
  border-bottom: 1px solid var(--line-strong);
  background: var(--table-header);
  color: var(--ink-2);
  font-size: .625rem;
  text-align: left;
}
.hr-data-table td { padding: 9px 10px; border-bottom: 1px solid var(--line); color: var(--ink-2); font-size: .6875rem; }
.hr-data-table tbody tr:hover { background: #fafaf8; }
.hr-data-table td strong { color: var(--ink); font-weight: 600; }
.hr-data-table .numeric { font-variant-numeric: tabular-nums; text-align: right; }
.hr-long-cell { overflow: hidden; max-width: 360px; text-overflow: ellipsis; }
.hr-staffing-wrap { max-height: calc(100vh - 246px); }
.hr-staffing-table { min-width: 2650px; }
.hr-admonition-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hr-admonition-fields label { display: grid; gap: 6px; color: var(--muted); font-size: .6875rem; font-weight: 650; }
.hr-admonition-fields input,
.hr-admonition-fields select,
.hr-admonition-fields textarea { width: 100%; padding: 9px; border: 1px solid var(--field-line); background: white; color: var(--ink); font: inherit; }
.hr-admonition-fields .wide { grid-column: 1 / -1; }
.hr-form-guidance { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.hr-approval-actions { display: flex; gap: 6px; }
.hr-approval-actions .button { min-height: 30px; padding: 5px 9px; }
.hr-readonly-action { display: grid; gap: 2px; color: var(--muted); min-width: 126px; }
.hr-readonly-action strong { color: var(--ink); font-size: 12px; }
.hr-readonly-action small { font-size: 11px; }
.hr-request-cell { min-width: 150px; max-width: 280px; white-space: normal; vertical-align: top; }
.hr-request-cell > strong,
.hr-request-cell > small { display: block; }
.hr-request-cell > small { margin-top: 3px; color: var(--muted); line-height: 1.35; }
.hr-request-note { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hr-evidence-details { margin-top: 10px; font-size: .6875rem; }
.hr-evidence-details summary { color: var(--brand-dark); cursor: pointer; font-weight: 650; }
.hr-evidence-details ul { overflow-wrap: anywhere; margin: 8px 0 0; padding-left: 18px; color: var(--muted); }
.hr-status { display: inline-flex; padding: 3px 6px; background: var(--field); font-size: .625rem; font-weight: 650; }
.hr-status.absent,
.hr-status.missing_mark { background: var(--risk-soft); color: var(--risk); }
.hr-status.late { background: var(--warning-soft); color: #76591f; }
.hr-status.complete { background: var(--good-soft); color: var(--good); }
.hr-status.active { background: var(--good-soft); color: var(--good); }
.hr-status.scheduled_cessation { background: var(--warning-soft); color: #76591f; }
.hr-status.ceased { background: var(--risk-soft); color: var(--risk); }
.hr-loading { padding: 36px 18px; color: var(--muted); }

.reporting-workspace { padding: 22px 18px 40px; }
.changes-workspace { padding: 22px 18px 40px; }
.store-selector-sheet { max-width: 720px; }
.store-selector-content { padding: 28px 14px 34px; }
.store-selector-field {
  display: grid;
  max-width: 420px;
  gap: 6px;
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
}
.store-selector-field select {
  width: 100%;
  height: 38px;
  padding: 0 34px 0 10px;
  border: 1px solid var(--field-line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: var(--text-xs);
}
.manual-event-inline-form { background: var(--surface); }
.manual-event-inline-form .manual-event-content {
  max-width: 980px;
  overflow: visible;
}
.manual-event-inline-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 20px;
  border-top: 1px solid var(--line);
  background: var(--header);
}
.manual-change-entry-unavailable { padding: 24px; }
.reporting-sheet { overflow: hidden; }
.reporting-toolbar { align-items: flex-end; gap: 18px; }
.reporting-toolbar small { display: block; max-width: 760px; margin-top: 4px; color: var(--muted); }
.reporting-table-scroll { max-height: calc(100vh - 245px); overflow: auto; }
.reporting-table { table-layout: auto; }
.collaborator-reporting-table { min-width: 1250px; }
.staffing-reporting-table { min-width: 2650px; }
.attendance-incident-table { min-width: 880px; }
.attendance-report-table { min-width: 3420px; }
.prepayroll-table { min-width: 1760px; }
.overtime-table { min-width: 1120px; }
.reporting-table th, .reporting-table td { min-width: 92px; }
.reporting-table th:nth-child(n+10), .reporting-table td:nth-child(n+10) { min-width: 74px; }
.prepayroll-toolbar { align-items: flex-end; flex-wrap: wrap; }
.reporting-toolbar-actions { display: flex; align-items: flex-end; gap: 8px; margin-left: auto; }
.table-column-picker { position: relative; }
.table-column-picker > .button { min-height: 34px; }
.data-table-columns-panel {
  width: 300px;
  gap: 8px;
}
.data-table-columns-panel .requirement-filter-values { max-height: 310px; }
.data-table-columns-panel .required-column { color: var(--muted); cursor: default; }
.data-table-columns-panel .required-column small { margin-left: auto; font-size: var(--text-2xs); }
.data-table-column-button.filtered { color: var(--brand-dark); }
.data-table-filter-summary {
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 600;
  white-space: nowrap;
}
.payroll-period-control { display: grid; gap: 4px; color: var(--muted); font-size: .625rem; font-weight: 650; }
.payroll-period-control select { min-width: 150px; min-height: 34px; padding: 6px 28px 6px 8px; border: 1px solid var(--field-line); background: var(--surface); color: var(--ink); font: inherit; font-size: .75rem; }
.prepayroll-table td { vertical-align: middle; }
.prepayroll-table td > small { display: block; max-width: 240px; margin-top: 3px; color: var(--muted); line-height: 1.35; white-space: normal; }
.prepayroll-table td:nth-child(1) { min-width: 190px; }
.prepayroll-table td:nth-child(2) { min-width: 155px; }
.prepayroll-table td:nth-child(3) { min-width: 115px; white-space: normal; }
.prepayroll-table td:nth-child(4) { min-width: 155px; white-space: normal; }
.prepayroll-table td:nth-child(6) { min-width: 235px; white-space: normal; }
.prepayroll-table td:nth-child(12) { min-width: 120px; white-space: normal; }
.attendance-report-table th,
.attendance-report-table td { height: 42px; vertical-align: middle; }
.attendance-report-table thead th { height: 52px; line-height: 1.25; white-space: normal; }
.attendance-report-table td.numeric { text-align: center; }
.attendance-report-table th:nth-child(1),
.attendance-report-table td:nth-child(1) { width: 92px; min-width: 92px; }
.attendance-report-table th:nth-child(2),
.attendance-report-table td:nth-child(2) { width: 210px; min-width: 210px; }
.attendance-report-table th:nth-child(1),
.attendance-report-table td:nth-child(1),
.attendance-report-table th:nth-child(2),
.attendance-report-table td:nth-child(2) { position: sticky; background: var(--surface); }
.attendance-report-table th:nth-child(1),
.attendance-report-table td:nth-child(1) { left: 0; }
.attendance-report-table th:nth-child(2),
.attendance-report-table td:nth-child(2) { left: 92px; border-right-color: var(--line-strong); }
.attendance-report-table thead th:nth-child(-n+2) { z-index: 4; background: var(--table-header); }
.attendance-report-table tbody td:nth-child(-n+2) { z-index: 1; }
.attendance-report-table tbody tr:hover td { background: var(--header); }

.zonal-vacation-sheet { margin-bottom: 14px; }
.central-approval-sheet,
.time-exception-sheet { margin-bottom: 0; }
.central-approval-table td,
.time-exception-table td { vertical-align: middle; }
.zonal-vacation-table td { vertical-align: middle; }
.zonal-vacation-table td:nth-child(4) strong,
.zonal-vacation-table td:nth-child(4) small { display: block; }
.zonal-vacation-table td:nth-child(4) small { margin-top: 3px; color: var(--muted); }
.zonal-vacation-table td:nth-child(5) { min-width: 240px; white-space: normal; }
.zonal-vacation-actions { display: flex; gap: 6px; }
.vacation-review-dialog { width: min(560px, calc(100vw - 24px)); }
.vacation-review-summary { border: 1px solid var(--line); }
.vacation-review-summary dl {
  display: grid;
  grid-template-columns: 130px 1fr;
  margin: 0;
  padding: 9px 11px;
  border-bottom: 1px solid var(--line);
}
.vacation-review-summary dl:last-child { border-bottom: 0; }
.vacation-review-summary dt { color: var(--muted); font-size: .6875rem; }
.vacation-review-summary dd { margin: 0; font-size: .75rem; font-weight: 600; }
.vacation-review-rationale { display: grid; gap: 6px; margin-top: 14px; }
.vacation-review-rationale > span { color: var(--muted); font-size: .6875rem; font-weight: 650; }
.vacation-review-rationale textarea { width: 100%; resize: vertical; padding: 10px; border: 1px solid var(--field-line); font: inherit; }
.vacation-review-dialog .button.danger { background: var(--risk); color: white; }

.app-frame { min-height: calc(100vh - 54px); }
.workspace { width: 100%; min-height: calc(100vh - 54px); }
.view { width: 100%; padding: 18px 18px 36px; }

.page-title, .store-header { margin: 0 0 12px; }
.page-title h1, .store-header h1 { margin: 0; font-size: 1.125rem; line-height: 1.25; letter-spacing: -.02em; }

.eyebrow {
  display: block;
  margin-bottom: 5px;
  color: var(--brand-dark);
  font-family: var(--font-mono);
  font-size: .625rem;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.sheet-section {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--surface);
}

.sheet-toolbar, .section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  padding: 0 14px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.sheet-toolbar h2, .section-header h2 { margin: 0; font-size: .84375rem; font-weight: 600; letter-spacing: -.01em; }
.sheet-toolbar > div:first-child > small { display: block; margin-top: 3px; color: var(--muted); font-size: var(--text-xs); }
.section-header > span { color: var(--muted); font-size: var(--text-xs); }

.table-controls { display: flex; align-items: center; gap: 8px; }
.table-controls input, .table-controls select, .store-select {
  height: 34px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font-size: var(--text-xs);
}
.table-controls input { width: 220px; padding: 0 9px; }
.table-controls select, .store-select { padding: 0 30px 0 9px; }
.table-controls span { min-width: 76px; color: var(--muted); font-size: var(--text-xs); text-align: right; }

.table-scroll { overflow: auto; width: 100%; }
.control-table-scroll { max-height: calc(100vh - 286px); min-height: 320px; }
.control-workspace .control-table-scroll { max-height: calc(100vh - 235px); }

.control-toolbar {
  min-height: 62px;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.control-toolbar > div:first-child { flex: 1 1 300px; align-self: flex-end; padding-bottom: 9px; }
.control-filter-bar {
  display: flex;
  flex: 0 1 auto;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 7px;
}
.control-filter {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.control-filter > span {
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 600;
}
.control-filter input, .control-filter select {
  height: 34px;
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font-size: var(--text-xs);
}
.control-filter input { width: 142px; padding: 0 9px; }
.control-filter select { padding: 0 28px 0 9px; }
.control-filter:has(#control-date-range) select { width: 190px; }
.control-filter:has(#control-region) select { width: 96px; }
.control-filter:has(#control-zone) select { width: 105px; }
.control-filter:has(#control-status) select { width: 142px; }
.control-result-count {
  min-width: 70px;
  padding-bottom: 9px;
  color: var(--muted);
  font-size: var(--text-xs);
  text-align: right;
  white-space: nowrap;
}

.sheet-table {
  width: 100%;
  border-spacing: 0;
  border-collapse: separate;
  table-layout: fixed;
  background: var(--surface);
  font-size: var(--text-xs);
}

.sheet-table th, .sheet-table td {
  overflow: hidden;
  height: 38px;
  padding: 0 9px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sheet-table th:last-child, .sheet-table td:last-child { border-right: 0; }
.sheet-table tbody tr:last-child td { border-bottom: 0; }
.sheet-table thead th {
  position: sticky;
  z-index: 2;
  top: 0;
  background: var(--table-header);
  color: var(--muted);
  font-family: inherit;
  font-size: var(--text-2xs);
  font-weight: 650;
  letter-spacing: 0;
  text-transform: none;
}
.sheet-table tbody tr:nth-child(even) td { background: var(--surface); }
.sheet-table tbody tr:hover td { background: var(--header); }
.sheet-table .numeric { font-variant-numeric: tabular-nums; text-align: right; }
.sheet-table.reporting-table th,
.sheet-table.reporting-table td,
.sheet-table.reporting-table td.numeric { text-align: left; }

.control-work-table { min-width: var(--control-table-min-width, 1415px); }
.control-work-table tbody td { height: 34px; }
.control-work-table .control-text-value { color: var(--ink-2); }
.control-work-table .control-store-column {
  position: sticky;
  left: 0;
  background: var(--surface);
  box-shadow: 1px 0 0 var(--line);
}
.control-work-table tbody .control-store-column { z-index: 3; }
.control-work-table thead .control-store-column {
  z-index: 6;
  background: var(--table-header);
}
.control-work-table tbody tr:hover .control-store-column { background: var(--header); }
.control-work-table tfoot td {
  position: sticky;
  z-index: 4;
  bottom: 0;
  height: 38px;
  border-top: 1px solid var(--line-strong);
  border-bottom: 0;
  background: var(--table-header);
  font-weight: 650;
}
.control-work-table tfoot .control-store-column {
  z-index: 6;
  background: var(--table-header);
}
.control-summary-symbol { color: var(--ink-2); }
.control-summary-label { overflow: hidden; color: var(--ink-2); text-overflow: ellipsis; }
.alert-risk-simulated {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.alert-risk-simulated small {
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
}

.requirements-toolbar { min-height: 62px; }
.requirements-toolbar-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.requirements-data-label {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  color: var(--warning);
  font-family: var(--font-mono);
  font-size: .625rem;
  font-weight: 600;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.requirements-data-label i { width: 6px; height: 6px; border-radius: 50%; background: var(--warning); }
.requirements-workspace .requirements-table-scroll { max-height: calc(100vh - 127px); min-height: 320px; }
.requirements-table { min-width: 1355px; }
.requirements-table tbody td { height: 56px; }
.requirements-table th:nth-child(1), .requirements-table td:nth-child(1) { width: 44px; }
.requirements-table th:nth-child(2), .requirements-table td:nth-child(2) { width: 190px; }
.requirements-table th:nth-child(3), .requirements-table td:nth-child(3) { width: 165px; }
.requirements-table th:nth-child(4), .requirements-table td:nth-child(4) { width: 195px; }
.requirements-table th:nth-child(5), .requirements-table td:nth-child(5) { width: 220px; }
.requirements-table th:nth-child(6), .requirements-table td:nth-child(6) { width: 220px; }
.requirements-table th:nth-child(7), .requirements-table td:nth-child(7) { width: 180px; }
.requirements-table th:nth-child(8), .requirements-table td:nth-child(8) { width: 140px; }
.requirements-table th:nth-child(1), .requirements-table td:nth-child(1),
.requirements-table th:nth-child(2), .requirements-table td:nth-child(2),
.requirements-table th:nth-child(3), .requirements-table td:nth-child(3) {
  position: sticky;
  background: var(--surface);
}
.requirements-table th:nth-child(1), .requirements-table td:nth-child(1) { z-index: 3; left: 0; }
.requirements-table th:nth-child(2), .requirements-table td:nth-child(2) { z-index: 3; left: 44px; }
.requirements-table th:nth-child(3), .requirements-table td:nth-child(3) { z-index: 3; left: 234px; box-shadow: 1px 0 0 var(--line); }
.requirements-table thead th:nth-child(1), .requirements-table thead th:nth-child(2),
.requirements-table thead th:nth-child(3) {
  z-index: 5;
  background: var(--table-header);
}
.requirements-table tbody tr:hover td:nth-child(1),
.requirements-table tbody tr:hover td:nth-child(2),
.requirements-table tbody tr:hover td:nth-child(3) { background: var(--header); }
.requirements-table .requirement-row { cursor: pointer; }
.requirements-table .requirement-row:focus-visible { position: relative; z-index: 6; outline: 3px solid rgba(227, 29, 47, .2); outline-offset: -3px; }
.store-management-pending-table { min-width: 1280px; }
.store-management-pending-table tbody td { height: 44px; vertical-align: middle; }
.store-management-pending-table th:nth-child(1),
.store-management-pending-table td:nth-child(1) { width: 44px; }
.store-management-pending-table th:nth-child(2),
.store-management-pending-table td:nth-child(2) { width: 145px; }
.store-management-pending-table th:nth-child(3),
.store-management-pending-table td:nth-child(3) { width: 190px; }
.store-management-pending-table th:nth-child(4),
.store-management-pending-table td:nth-child(4) { width: 150px; }
.store-management-pending-table th:nth-child(5),
.store-management-pending-table td:nth-child(5) { width: 320px; }
.store-management-pending-table th:nth-child(6),
.store-management-pending-table td:nth-child(6) { width: 120px; }
.store-management-pending-table th:nth-child(7),
.store-management-pending-table td:nth-child(7) { width: 170px; }
.store-management-pending-table th:nth-child(8),
.store-management-pending-table td:nth-child(8) { width: 235px; }
.store-management-pending-table th:nth-child(2),
.store-management-pending-table td:nth-child(2) { left: 44px; }
.store-management-pending-table th:nth-child(3),
.store-management-pending-table td:nth-child(3) { left: 189px; }
.pending-detail-cell > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pending-state { color: var(--ink-2); font-size: var(--text-xs); font-weight: 650; }
.pending-approval-actions { flex-wrap: nowrap; }
.pending-state-cell { overflow: visible !important; }
.requirement-reason-cell { vertical-align: middle; }
.requirement-reason-cell strong,
.requirement-reason-cell span { display: block; }
.requirement-reason-cell strong { color: var(--ink-2); font-size: var(--text-xs); line-height: 1.25; }
.requirement-reason-cell span { margin-top: 3px; color: var(--muted); font-size: var(--text-2xs); }
.requirement-summary-cell { color: var(--ink-2); }
.requirement-select-column { padding: 0 !important; text-align: center !important; }
.requirement-select-column input { width: 15px; height: 15px; margin: 0; accent-color: var(--brand); cursor: pointer; }
.requirement-select-column input:disabled { cursor: not-allowed; opacity: .35; }
.requirement-column-button {
  display: flex;
  width: calc(100% + 18px);
  height: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  margin: 0 -9px;
  padding: 0 8px;
  overflow: hidden;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  text-align: left;
  cursor: pointer;
}
.requirement-column-button:hover, .requirement-column-button.filtered { background: #e4e7e2; color: var(--ink); }
.requirement-column-button span { overflow: hidden; text-overflow: ellipsis; }
.requirement-column-button i { flex: 0 0 auto; color: var(--brand-dark); font-style: normal; font-size: .6875rem; }
.requirement-priority { font-family: var(--font-mono); font-weight: 700; font-variant-numeric: tabular-nums; }
.requirement-na { color: var(--faint); }
.requirement-resolution-cell { display: grid; gap: 2px; }
.requirement-resolution-select {
  width: 100%;
  height: 28px;
  padding: 0 26px 0 7px;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 3px;
  background: var(--surface);
  color: var(--ink);
  font-size: var(--text-xs);
  text-overflow: ellipsis;
}
.requirement-resolution-select.changed { border-color: var(--tambo-purple); box-shadow: inset 3px 0 0 var(--tambo-purple); }
.requirement-resolution-select:disabled { border-color: transparent; background: transparent; color: var(--muted); opacity: 1; }
.requirement-input-status { overflow: hidden; font-size: .625rem; font-weight: 650; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.requirement-input-status.ready { color: var(--good); }
.requirement-input-status.pending { color: var(--warning); }
.requirement-input-status.recorded { color: var(--muted); }
.requirement-filter-backdrop {
  position: fixed;
  z-index: 38;
  inset: 0;
  border: 0;
  background: transparent;
}
.requirement-filter-panel {
  position: fixed;
  z-index: 39;
  display: grid;
  width: 292px;
  max-height: min(520px, calc(100vh - 24px));
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: var(--surface);
  box-shadow: 0 14px 38px rgba(20, 18, 16, .18);
}
.requirement-filter-panel > strong { font-size: var(--text-sm); font-weight: 700; }
.requirement-filter-sort { display: grid; border: 1px solid var(--line); border-radius: 3px; overflow: hidden; }
.requirement-filter-sort button {
  min-height: 34px;
  padding: 0 9px;
  border: 0;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink-2);
  font-size: var(--text-xs);
  text-align: left;
  cursor: pointer;
}
.requirement-filter-sort button:last-child { border-bottom: 0; }
.requirement-filter-sort button:hover { background: var(--header); }
.requirement-filter-search { display: grid; gap: 4px; }
.requirement-filter-search > span { color: var(--muted); font-size: var(--text-2xs); font-weight: 600; }
.requirement-filter-search input { height: 34px; padding: 0 8px; border: 1px solid var(--line); border-radius: 3px; font-size: var(--text-xs); }
.requirement-filter-values { min-height: 80px; max-height: 230px; overflow: auto; border: 1px solid var(--line); }
.requirement-filter-option { display: flex; min-height: 32px; align-items: center; gap: 8px; padding: 5px 8px; border-bottom: 1px solid var(--line); color: var(--ink-2); font-size: var(--text-xs); cursor: pointer; }
.requirement-filter-option:last-child { border-bottom: 0; }
.requirement-filter-option:hover { background: var(--header); }
.requirement-filter-option[hidden] { display: none; }
.requirement-filter-option.select-all { position: sticky; z-index: 1; top: 0; background: var(--header); font-weight: 650; }
.requirement-filter-option input { margin: 0; accent-color: var(--brand); }
.requirement-filter-panel footer { display: flex; justify-content: space-between; gap: 8px; }

.alerts-toolbar { min-height: 62px; }
.alerts-toolbar-actions { display: flex; align-items: center; gap: 8px; }
.alerts-workspace .alerts-table-scroll { max-height: calc(100vh - 170px); min-height: 260px; }
.alerts-changes-table {
  width: 100%;
  min-width: 1240px;
  table-layout: fixed;
}
.alerts-changes-table th:nth-child(1),
.alerts-changes-table td:nth-child(1) { width: 96px; }
.alerts-changes-table th:nth-child(2),
.alerts-changes-table td:nth-child(2) { width: 125px; }
.alerts-changes-table th:nth-child(3),
.alerts-changes-table td:nth-child(3) { width: 80px; text-align: center; }
.alerts-changes-table th:nth-child(4),
.alerts-changes-table td:nth-child(4) { width: 100px; text-align: center; }
.alerts-changes-table th:nth-child(5),
.alerts-changes-table td:nth-child(5) { width: 145px; }
.alerts-changes-table th:nth-child(6),
.alerts-changes-table td:nth-child(6) { width: 105px; }
.alerts-changes-table th:nth-child(7),
.alerts-changes-table td:nth-child(7) { width: 108px; }
.alerts-changes-table th:nth-child(8),
.alerts-changes-table td:nth-child(8) { width: 100px; }
.alerts-changes-table th:nth-child(9),
.alerts-changes-table td:nth-child(9) { width: 125px; }
.alerts-changes-table th:nth-child(10),
.alerts-changes-table td:nth-child(10) { width: 210px; }
.alerts-changes-table td {
  height: 42px;
  line-height: 1.35;
  vertical-align: middle;
  white-space: normal;
}
.alerts-changes-table td > strong,
.alerts-changes-table td > small { display: block; }
.alerts-changes-table td > small { margin-top: 4px; color: var(--muted); }
.alerts-changes-table .store-cell {
  overflow-wrap: anywhere;
  text-align: left;
  white-space: normal;
}
.record-kind {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 0 7px;
  border-radius: 3px;
  font-size: var(--text-2xs);
  font-weight: 700;
  white-space: nowrap;
}
.record-kind.alert-kind { background: var(--warning-soft); color: var(--warning); }
.record-kind.manual-kind { background: var(--good-soft); color: var(--good); }
.alerts-table { min-width: 1135px; }
.operational-alerts-table { min-width: 1385px; }
.operational-alerts-table th:nth-child(1),
.operational-alerts-table td:nth-child(1) { width: 165px; }
.operational-alerts-table th:nth-child(2),
.operational-alerts-table td:nth-child(2) { width: 92px; }
.operational-alerts-table th:nth-child(3),
.operational-alerts-table td:nth-child(3) { width: 125px; }
.operational-alerts-table th:nth-child(4),
.operational-alerts-table td:nth-child(4) { width: 180px; }
.operational-alerts-table th:nth-child(5),
.operational-alerts-table td:nth-child(5) { width: 140px; }
.operational-alerts-table th:nth-child(6),
.operational-alerts-table td:nth-child(6) { width: 120px; }
.operational-alerts-table th:nth-child(7),
.operational-alerts-table td:nth-child(7) { width: 145px; }
.operational-alerts-table th:nth-child(8),
.operational-alerts-table td:nth-child(8) { width: 175px; }
.operational-alerts-table th:nth-child(9),
.operational-alerts-table td:nth-child(9) { width: 243px; }
.changes-table { min-width: 850px; }
.alerts-table tbody td {
  height: 42px;
  line-height: 1.25;
  vertical-align: middle;
}
.alerts-table td:nth-child(3),
.alerts-table td:nth-child(6),
.alerts-table td:nth-child(7) {
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}
.alerts-table .store-cell {
  overflow: visible;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-align: left;
  text-overflow: clip;
  white-space: normal;
}
.alerts-table td:first-child strong,
.alerts-table td:first-child small {
  display: block;
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}
.alerts-table td:first-child strong { font-size: var(--text-xs); }
.alerts-table td:first-child small { margin-top: 4px; color: var(--muted); font-size: var(--text-2xs); }
.alert-days strong { font-family: var(--font-mono); font-size: var(--text-sm); font-variant-numeric: tabular-nums; }
.alert-days .unavailable { color: var(--muted); font-size: var(--text-2xs); }
.alert-probability { font-family: var(--font-mono); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.alert-probability.unavailable { color: var(--muted); font-family: inherit; font-size: var(--text-2xs); font-weight: 600; }
.alert-actions { display: flex; align-items: center; gap: 6px; }
.alert-actions .button { min-height: 30px; padding: 0 9px; white-space: nowrap; }
.alert-link {
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--brand-dark);
  font-size: var(--text-xs);
  font-weight: 650;
  cursor: pointer;
}
.alert-link:hover { text-decoration: underline; }
.alert-resolution {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px 8px;
}
.alert-resolved { color: var(--good); font-size: var(--text-xs); font-weight: 650; }
.alerts-source-note {
  margin: 0;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
  background: var(--header);
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.45;
}

.novelty-tabs {
  display: flex;
  min-height: 43px;
  align-items: flex-end;
  gap: 2px;
  padding: 0 14px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line-strong);
  background: var(--header);
}
.novelty-tabs button {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 7px;
  padding: 0 14px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 650;
  cursor: pointer;
}
.novelty-tabs button:hover { color: var(--ink); }
.novelty-tabs button.active {
  border-bottom-color: var(--brand);
  color: var(--ink);
}
.novelty-tabs button span {
  display: inline-flex;
  min-width: 20px;
  height: 20px;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  border-radius: 10px;
  background: var(--field-line);
  font-family: var(--font-mono);
  font-size: var(--text-2xs);
}
.novelty-tab-panel { background: var(--workbench); }
.novelty-form-grid,
.novelty-demand-layout {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
}
.novelty-form-card,
.new-store-panel {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: var(--surface);
}
.novelty-form-card > header,
.new-store-panel > header {
  display: flex;
  min-height: 62px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.novelty-form-card h3,
.new-store-panel h3,
.novelty-record-grid h3,
.novelty-demand-records h3 {
  margin: 0;
  font-size: var(--text-base);
  font-weight: 650;
}
.novelty-form-card header small,
.new-store-panel header small {
  display: block;
  max-width: 500px;
  margin-top: 3px;
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.4;
}
.simulation-tag {
  flex: 0 0 auto;
  padding: 3px 6px;
  border: 1px solid #efce92;
  border-radius: 3px;
  background: var(--warning-soft);
  color: #72571f;
  font-size: var(--text-2xs);
  font-weight: 650;
  white-space: nowrap;
}
.novelty-form-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
  padding: 14px;
}
.novelty-form-fields label { display: grid; align-content: start; gap: 5px; }
.novelty-form-fields label.wide { grid-column: 1 / -1; }
.novelty-form-fields label > span {
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
}
.novelty-form-fields input,
.novelty-form-fields select {
  width: 100%;
  height: 36px;
  padding: 0 9px;
  border: 1px solid var(--field-line);
  border-radius: 3px;
  background: var(--surface);
  color: var(--ink);
  font-size: var(--text-xs);
}
.novelty-form-card > footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
}
.restriction-form-card,
.onboarding-form-card { grid-column: 1 / -1; }
@media (min-width: 901px) {
  .restriction-form-card .novelty-form-fields {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.onboarding-week-editor,
#onboarding-preview {
  margin: 0 14px 14px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--surface);
}
.onboarding-week-heading,
.onboarding-preview-ready > header {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.onboarding-week-heading > div,
.onboarding-preview-ready > header > div,
.onboarding-preview-empty { display: grid; gap: 3px; }
.onboarding-week-heading strong,
.onboarding-preview-ready strong,
.onboarding-preview-empty strong { font-size: var(--text-xs); }
.onboarding-week-heading small,
.onboarding-preview-ready small,
.onboarding-preview-empty span,
.onboarding-policy-note,
.onboarding-preview-ready > p {
  color: var(--muted);
  font-size: var(--text-2xs);
  line-height: 1.4;
}
.onboarding-week-heading > span,
.onboarding-preview-ready > header > span {
  flex: 0 0 auto;
  color: var(--brand);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  font-weight: 700;
}
.onboarding-week-table,
.onboarding-preview-table { min-width: 620px; }
.onboarding-week-table th,
.onboarding-week-table td,
.onboarding-preview-table th,
.onboarding-preview-table td {
  height: 38px;
  padding: 6px 9px;
  font-size: var(--text-xs);
  white-space: nowrap;
}
.onboarding-week-table input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: var(--brand);
}
.onboarding-week-table input[type="time"] {
  width: 116px;
  height: 30px;
  padding: 0 7px;
  border: 1px solid var(--field-line);
  border-radius: 3px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
}
.onboarding-week-table input:disabled { opacity: .42; }
.onboarding-policy-note,
.onboarding-preview-ready > p { margin: 0; padding: 8px 11px; border-top: 1px solid var(--line); }
.onboarding-preview-empty { padding: 13px 11px; background: var(--header); }
.onboarding-preview-ready code { font-family: var(--font-mono); font-size: inherit; }
.onboarding-records { grid-column: 1 / -1; }
.onboarding-schedule-detail { max-width: 420px; }
.onboarding-schedule-detail summary {
  color: var(--brand);
  font-weight: 650;
  cursor: pointer;
}
.onboarding-schedule-detail p {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: var(--text-2xs);
  line-height: 1.45;
  white-space: normal;
}
.percent-input { position: relative; }
.percent-input input { padding-right: 28px; }
.percent-input i {
  position: absolute;
  top: 10px;
  right: 10px;
  color: var(--muted);
  font-size: var(--text-xs);
  font-style: normal;
}
.novelty-record-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 14px 14px;
}
.novelty-record-grid > section,
.novelty-demand-records {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: var(--surface);
}
.novelty-record-grid > section > h3,
.novelty-demand-records > h3 {
  padding: 11px 13px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.novelty-record-table { min-width: 600px; }
.novelty-record-table th,
.novelty-record-table td {
  height: 42px;
  padding: 7px 9px;
  font-size: var(--text-xs);
  white-space: nowrap;
}
.new-store-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--line);
}
.new-store-summary > div {
  display: grid;
  gap: 3px;
  padding: 11px 13px;
  border-right: 1px solid var(--line);
}
.new-store-summary > div:last-child { border-right: 0; }
.new-store-summary span { color: var(--muted); font-size: var(--text-2xs); }
.new-store-summary strong { font-family: var(--font-mono); font-size: var(--text-sm); }
.new-store-panel > p {
  margin: 0;
  padding: 10px 13px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.45;
}
.new-stores-sheet { min-height: calc(100vh - 76px); }
.new-store-builder {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(320px, .72fr);
  gap: 12px;
  padding: 14px;
  border-bottom: 1px solid var(--line-strong);
  background: var(--workbench);
}
.new-store-map-card,
.new-store-scenario-form,
.new-store-result-section {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: var(--surface);
}
.new-store-map-card > header,
.new-store-scenario-form > header,
.new-store-result-section > header {
  display: flex;
  min-height: 62px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.new-store-map-card h3,
.new-store-scenario-form h3,
.new-store-result-section h3 {
  margin: 0;
  font-size: var(--text-base);
  font-weight: 650;
}
.new-store-map-card header small,
.new-store-scenario-form header small,
.new-store-result-section header small {
  display: block;
  max-width: 720px;
  margin-top: 3px;
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.4;
}
#new-store-map {
  z-index: 0;
  width: 100%;
  height: 520px;
  background: #ece9e6;
}
#new-store-map .leaflet-control-container { font-family: var(--font-sans); }
#new-store-map .leaflet-tooltip {
  max-width: 260px;
  border-color: var(--line-strong);
  border-radius: 3px;
  color: var(--ink);
  font-size: var(--text-2xs);
  line-height: 1.35;
  white-space: normal;
}
#new-store-map .leaflet-tooltip small { color: var(--brand); }
.new-store-map-error {
  display: grid;
  height: 100%;
  place-items: center;
  padding: 24px;
  color: var(--muted);
  font-size: var(--text-xs);
  text-align: center;
}
.new-store-map-legend {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: var(--text-2xs);
  white-space: nowrap;
}
.new-store-map-legend span {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-left: 5px;
  border-radius: 50%;
  background: #d77ca0;
}
.new-store-map-legend span.measured { width: 10px; height: 10px; background: var(--brand); }
.new-store-scenario-form { align-self: start; }
.new-store-form-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px;
  padding: 14px;
}
.new-store-form-fields label { display: grid; gap: 5px; }
.new-store-form-fields label.wide { grid-column: 1 / -1; }
.new-store-form-fields label > span {
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
}
.new-store-form-fields input {
  width: 100%;
  height: 37px;
  padding: 0 9px;
  border: 1px solid var(--field-line);
  border-radius: 3px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  font-size: var(--text-xs);
}
.new-store-unit-input { position: relative; }
.new-store-unit-input input { padding-right: 36px; }
.new-store-unit-input i {
  position: absolute;
  top: 10px;
  right: 10px;
  color: var(--muted);
  font-size: var(--text-xs);
  font-style: normal;
}
.new-store-form-note {
  display: grid;
  gap: 4px;
  margin: 0 14px 14px;
  padding: 10px 11px;
  border-left: 3px solid var(--brand);
  background: var(--brand-soft);
  font-size: var(--text-xs);
  line-height: 1.4;
}
.new-store-form-note span { color: var(--ink-2); }
.new-store-scenario-form > footer {
  display: flex;
  justify-content: flex-end;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
}
#new-store-result { background: var(--workbench); }
.new-store-result-empty {
  display: grid;
  min-height: 132px;
  align-content: center;
  justify-items: center;
  gap: 5px;
  padding: 22px;
  color: var(--muted);
  font-size: var(--text-xs);
  text-align: center;
}
.new-store-result-empty strong { color: var(--ink); font-size: var(--text-sm); }
.new-store-result-empty.loading { background: linear-gradient(90deg, var(--header), #fff, var(--header)); }
.new-store-result-empty.error { color: var(--risk); }
.new-store-results { display: grid; gap: 12px; padding: 14px; }
.new-store-summary.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.new-store-summary.four > div { min-height: 92px; align-content: center; }
.new-store-summary.four strong { font-size: var(--text-base); }
.new-store-summary.four small { color: var(--muted); font-size: var(--text-2xs); line-height: 1.35; }
.new-store-result-tables {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 12px;
}
.new-store-detail-table { table-layout: fixed; }
.new-store-detail-table th,
.new-store-detail-table td {
  height: 40px;
  padding: 7px 9px;
  font-size: var(--text-xs);
  white-space: normal;
}
.new-store-detail-table th { width: 65%; color: var(--ink-2); font-weight: 550; text-align: left; }
.new-store-detail-table td { font-family: var(--font-mono); font-weight: 600; text-align: right; }
.new-store-comparables { min-width: 760px; }
.new-store-neighbors { min-width: 720px; }
.new-store-comparables th,
.new-store-comparables td,
.new-store-neighbors th,
.new-store-neighbors td {
  height: 42px;
  padding: 7px 10px;
  font-size: var(--text-xs);
  white-space: nowrap;
}
.new-store-neighbors td:first-child { white-space: normal; }
.new-store-neighbors td:first-child small { display: block; margin-top: 2px; color: var(--muted); }
.new-store-methodology {
  display: grid;
  gap: 8px;
  padding: 13px 15px;
  border: 1px solid #d8c4a4;
  border-left: 4px solid var(--warning);
  background: var(--warning-soft);
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.5;
}
.new-store-methodology > div { display: grid; gap: 2px; }
.new-store-methodology strong { color: var(--warning); }
.new-store-methodology p,
.new-store-methodology ul { margin: 0; }
.new-store-methodology ul { padding-left: 18px; }
.novelty-demand-records { margin: 0 14px 14px; }

.sales-metric {
  display: inline-flex;
  align-items: flex-end;
  flex-direction: column;
  justify-content: center;
  min-height: 34px;
  line-height: 1.15;
  vertical-align: middle;
}
.sales-metric strong { color: var(--ink); font-size: var(--text-sm); font-weight: 600; }
.sales-value, .annual-change { color: var(--ink); font-size: var(--text-xs); font-weight: 600; }
.annual-change.positive { color: var(--good); }
.annual-change.negative { color: var(--risk); }
.coverage-value, .coverage-tag {
  display: inline-flex;
  min-width: 52px;
  min-height: 22px;
  align-items: center;
  justify-content: flex-end;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
}
.coverage-tag.warning {
  padding: 0 6px;
  border: 1px solid #efce92;
  border-radius: 3px;
  background: var(--warning-soft);
  color: #805400;
}
.metric-comparison { margin-top: 4px; color: var(--muted); font-size: var(--text-2xs); font-weight: 500; }
.metric-comparison.positive { color: var(--good); }
.metric-comparison.negative { color: var(--risk); }
.metric-comparison.unavailable, .metric-na { color: var(--faint); }
.metric-na { font-size: var(--text-xs); font-weight: 500; }

.module-status {
  display: inline-flex;
  min-height: 20px;
  align-items: center;
  padding: 1px 5px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: var(--surface);
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
  white-space: nowrap;
}
.module-status.risk { border-color: #efc9c3; color: var(--risk); }
.module-status.warning { border-color: #ead7ad; color: var(--warning); }
.module-status.good { border-color: #bfd3bb; color: var(--good); }
.module-status.info { color: var(--ink-2); }
.requirement-resource { overflow: hidden; color: var(--muted); font-size: var(--text-xs); text-overflow: ellipsis; white-space: nowrap; }
.store-cell-group {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: 100%;
}
.store-cell {
  overflow: hidden;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-weight: 650;
  cursor: pointer;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.store-cell:hover { text-decoration: underline; }
.data-warning { position: relative; display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: 15px; height: 20px; border-radius: 3px; cursor: help; }
.data-warning:focus-visible { outline: 3px solid rgba(212, 134, 11, .25); outline-offset: 1px; }
.data-warning-dot { width: 7px; height: 7px; border-radius: 50%; background: #d4860b; }
.data-warning-copy { display: none; }
.data-warning-tooltip {
  position: fixed;
  z-index: 60;
  display: grid;
  width: 350px;
  gap: 7px;
  padding: 12px 13px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: rgba(255, 255, 255, .99);
  box-shadow: var(--shadow);
  color: var(--ink);
  font-size: var(--text-xs);
  font-weight: 400;
  line-height: 1.4;
  pointer-events: none;
  white-space: normal;
}
.data-warning-tooltip[hidden] { display: none; }
.data-warning-tooltip strong { font-weight: 700; }
.risk-text { color: var(--risk); font-weight: 700; }
.warning-text { color: var(--warning); font-weight: 700; }
.good-text { color: var(--good); font-weight: 700; }
.zero-value { color: var(--faint); }
.table-empty { height: 100px !important; color: var(--muted); text-align: center !important; }
.table-empty.block { display: grid; place-items: center; min-height: 90px; }

.store-view { min-height: calc(100vh - 54px); background: var(--workbench); }
.store-header {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: end;
  gap: 18px;
}
.store-heading { display: grid; min-width: 0; align-content: end; gap: 2px; }
.store-heading .eyebrow { margin-bottom: 1px; }
.store-heading h1 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.store-heading small { color: var(--muted); font-size: var(--text-xs); }
.store-filter-bar {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 7px;
}
.store-filter-bar .control-filter:has(#malla-region) select { width: 96px; }
.store-filter-bar .control-filter:has(#malla-zone) select { width: 105px; }
.store-search-filter { position: relative; }
.store-combobox { position: relative; }
.store-combobox input { width: 220px; padding: 0 28px 0 9px; font-weight: 600; }
.store-combobox-results {
  position: absolute;
  z-index: 18;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 280px;
  overflow: auto;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: var(--surface);
  box-shadow: var(--shadow);
}
.store-combobox-results[hidden] { display: none; }
.store-combobox-option, .store-combobox-empty {
  min-height: 34px;
  padding: 9px 10px;
  border-bottom: 1px solid var(--line);
  font-size: var(--text-xs);
}
.store-combobox-option:last-child { border-bottom: 0; }
.store-combobox-option { cursor: pointer; }
.store-combobox-option:hover, .store-combobox-option.active { background: var(--header); color: var(--brand-dark); }
.store-combobox-empty { color: var(--muted); line-height: 1.35; }
.store-match-count {
  min-width: 72px;
  padding-bottom: 9px;
  color: var(--muted);
  font-size: var(--text-xs);
  text-align: right;
  white-space: nowrap;
}

.button {
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 4px;
  font-size: var(--text-xs);
  font-weight: 650;
  cursor: pointer;
}
.button.primary { border-color: var(--brand-dark); background: var(--brand); color: white; }
.button.primary:hover { background: var(--brand-dark); }
.button.secondary { border-color: var(--line-strong); background: var(--surface); }
.button.secondary:hover { background: var(--header); }
.button:disabled { opacity: .55; cursor: not-allowed; }

.store-metrics-table-scroll {
  border: 1px solid var(--line);
  background: var(--surface);
  overscroll-behavior-inline: contain;
}
.store-metrics-table {
  width: 100%;
  min-width: 1350px;
  border-spacing: 0;
  table-layout: fixed;
  background: var(--surface);
}
.store-metrics-table col.store-sales-col { width: 125px; }
.store-metrics-table col.store-variation-col { width: 100px; }
.store-metrics-table col.store-ytd-variation-col { width: 118px; }
.store-metrics-table col.store-headcount-col { width: 100px; }
.store-metrics-table col.store-coverage-col { width: 112px; }
.store-metrics-table col.store-contract-col { width: 110px; }
.store-metrics-table col.store-quality-col { width: 130px; }
.store-metrics-table th,
.store-metrics-table td {
  overflow: hidden;
  padding: 8px 11px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  font-family: inherit;
  font-size: var(--text-xs);
  font-weight: 600;
  text-align: left;
  text-overflow: ellipsis;
  vertical-align: middle;
}
.store-metrics-table th:last-child,
.store-metrics-table td:last-child { border-right: 0; }
.store-metrics-table th {
  height: 46px;
  background: var(--table-header);
  color: var(--muted);
  line-height: 1.25;
  white-space: normal;
}
.store-metrics-table td {
  height: 48px;
  border-bottom: 0;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.store-metrics-table td .sales-value,
.store-metrics-table td .annual-change,
.store-metrics-table td .coverage-tag,
.store-metrics-table td .coverage-value { font: inherit; }
.store-metric-note {
  margin: 6px 2px 0;
  color: var(--muted);
  font-size: var(--text-xs);
}
.store-window-card {
  min-width: 0;
  margin-top: 12px;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--surface);
}
.store-window-card > header {
  display: flex;
  min-height: 58px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 13px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.store-window-card h2 { margin: 0; font-size: var(--text-base); }
.store-window-card header small,
.store-window-empty p,
.store-window-governance p {
  color: var(--muted);
  font-size: var(--text-2xs);
  line-height: 1.45;
}
.store-window-card header small { display: block; margin-top: 3px; }
.store-window-empty,
.store-window-governance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 13px;
}
.store-window-empty p,
.store-window-governance p { max-width: 880px; margin: 0; }
.store-window-governance { border-top: 1px solid var(--line); }
.store-window-governance .risk { color: var(--risk); }
.store-window-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.store-window-summary > div {
  display: grid;
  min-width: 0;
  gap: 4px;
  padding: 10px 12px;
  border-right: 1px solid var(--line);
}
.store-window-summary > div:last-child { border-right: 0; }
.store-window-summary span { color: var(--muted); font-size: var(--text-2xs); }
.store-window-summary strong {
  overflow: hidden;
  font-size: var(--text-sm);
  font-variant-numeric: tabular-nums;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.attendance-table tbody th small { display: block; margin-top: 2px; color: var(--faint); font-size: var(--text-2xs); font-weight: 500; }

.store-view .sheet-section { margin-top: 12px; }
.store-figure > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 50px;
  align-items: center;
  gap: 14px;
  padding: 7px 14px;
  cursor: pointer;
  list-style: none;
}
.store-figure > summary::-webkit-details-marker { display: none; }
.store-figure > summary:hover { background: var(--header); }
.store-figure > summary h2 { margin: 0; font-size: .84375rem; font-weight: 600; letter-spacing: -.01em; }
.store-figure > summary::after { color: var(--muted); content: "⌄"; font-size: 1rem; transition: transform .15s ease; }
.store-figure[open] > summary { border-bottom: 1px solid var(--line); }
.store-figure[open] > summary::after { transform: rotate(180deg); }
.figure-meta-row {
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: 14px 28px;
  padding: 8px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}
.figure-legend {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 8px 28px;
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.35;
}
.figure-legend span { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.coverage-filter-group, .schedule-filter-group {
  display: flex;
  flex: 0 0 auto;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
}
.coverage-meta-row .control-filter:has(#coverage-week) select { width: 230px; }
.coverage-meta-row .control-filter:has(#coverage-day) select { width: 164px; }
.revenue-chart { position: relative; }
.revenue-chart-scroll { padding: 10px 12px; overflow: auto; }
.revenue-legend i { display: inline-block; width: 16px; }
.revenue-legend i.daily { height: 9px; background: var(--tambo-purple); opacity: .28; }
.revenue-legend i.average { height: 0; border-top: 2.5px solid var(--tambo-purple); }
.revenue-chart svg { display: block; width: 100%; min-width: 720px; }
.metric-history-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 0;
}
.metric-history-panel {
  min-width: 0;
  border-right: 1px solid var(--line);
  background: var(--surface);
}
.metric-history-panel:last-child { border-right: 0; }
.metric-history-panel h3 {
  margin: 0;
  padding: 12px 14px 0;
  color: var(--ink-2);
  font-size: var(--text-sm);
  font-weight: 650;
}
.metric-history-chart svg { min-width: 380px; }
.revenue-grid line { stroke: var(--line); stroke-width: 1; }
.revenue-grid text { fill: var(--muted); font-size: 8px; font-variant-numeric: tabular-nums; }
.revenue-bars rect { fill: var(--tambo-purple); opacity: .28; }
.revenue-bars rect:hover { opacity: .48; }
.revenue-average-line { fill: none; stroke: var(--tambo-purple); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.revenue-points circle { fill: var(--surface); stroke: var(--tambo-purple); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.revenue-hover-indicator { pointer-events: none; }
.revenue-hover-indicator[hidden], .revenue-hover-point[hidden] { display: none; }
.revenue-crosshair { stroke: var(--chart-current); stroke-width: 1; stroke-dasharray: 3 3; }
.revenue-hover-point { fill: var(--surface); stroke: var(--tambo-purple); stroke-width: 3; vector-effect: non-scaling-stroke; }
.revenue-hover-point.daily { fill: color-mix(in srgb, var(--tambo-purple) 28%, white); }
.revenue-hit-area { fill: transparent; cursor: crosshair; pointer-events: all; }
.revenue-tooltip span i.daily { background: color-mix(in srgb, var(--tambo-purple) 35%, white); }
.revenue-tooltip span i.average { background: var(--tambo-purple); }
.schedule-filter-group .control-filter:has(#malla-week) select { width: 196px; }
.plan-calendar-legend { gap: 8px 18px; }
.plan-calendar-legend span { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.plan-calendar-legend i {
  width: 18px;
  height: 10px;
  border: 1px solid #9a90b0;
  border-radius: 2px;
  background: #eeeaf6;
}
.plan-calendar-legend i.meal { border-color: #ad7720; background: #f1c463; }
.plan-calendar-legend i.rest { border-color: #277485; background: #71bfce; }
.plan-mode-switch { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.plan-mode-switch button {
  display: grid;
  min-height: 54px;
  align-content: center;
  gap: 3px;
  padding: 7px 14px;
  border: 0;
  border-right: 1px solid var(--line);
  background: var(--surface);
  color: var(--muted);
  text-align: left;
  cursor: pointer;
}
.plan-mode-switch button:last-child { border-right: 0; }
.plan-mode-switch button:hover { background: var(--header); }
.plan-mode-switch button.active { background: var(--header); box-shadow: inset 3px 0 0 var(--ink); color: var(--ink); }
.plan-mode-switch span { font-size: var(--text-sm); font-weight: 700; }
.plan-mode-switch small { color: var(--muted); font-size: var(--text-xs); font-variant-numeric: tabular-nums; }
.plan-source-note { margin: 0; padding: 8px 12px; border-bottom: 1px solid var(--line); background: #fbfbfa; color: var(--muted); font-size: var(--text-xs); }

.plan-employee-control { display: grid; gap: 4px; }
.plan-employee-control > span { color: var(--muted); font-size: var(--text-2xs); font-weight: 600; }
.plan-employee-control input {
  width: 310px;
  height: 34px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink);
  font-size: var(--text-xs);
}
.plan-calendar-scroll { width: 100%; overflow: auto; }
.plan-calendar { min-width: 1240px; background: var(--surface); }
.plan-week-day { border-bottom: 1px solid var(--line); }
.plan-week-day:last-child { border-bottom: 0; }
.plan-week-day > summary {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr) auto;
  min-height: 42px;
  align-items: center;
  gap: 12px;
  padding: 0 12px 0 0;
  background: var(--surface);
  cursor: pointer;
  list-style: none;
}
.plan-week-day > summary::-webkit-details-marker { display: none; }
.plan-week-day > summary:hover { background: var(--header); }
.plan-week-day > summary > span { align-self: stretch; display: flex; align-items: center; padding: 0 10px; border-right: 1px solid var(--line); font-size: var(--text-xs); font-weight: 700; }
.plan-week-day > summary > small { color: var(--muted); font-size: var(--text-xs); }
.plan-week-day > summary::after { color: var(--muted); content: "⌄"; font-size: 1rem; transition: transform .15s ease; }
.plan-week-day[open] > summary { background: var(--header); }
.plan-week-day[open] > summary::after { transform: rotate(180deg); }
.plan-day-body { border-top: 1px solid var(--line); }
.plan-time-axis, .plan-resource-row { display: grid; grid-template-columns: 190px minmax(0, 1fr); }
.plan-time-axis {
  min-height: 32px;
  border-bottom: 1px solid var(--line);
  background: var(--table-header);
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
}
.plan-time-axis > span {
  position: sticky;
  z-index: 4;
  left: 0;
  display: flex;
  align-items: center;
  padding: 0 10px;
  border-right: 1px solid var(--line);
  background: var(--table-header);
}
.plan-axis-track, .plan-resource-track {
  position: relative;
  min-width: 0;
  background-image:
    repeating-linear-gradient(to right, transparent 0, transparent calc(4.1667% - 1px), rgba(204, 203, 199, .42) calc(4.1667% - 1px), rgba(204, 203, 199, .42) 4.1667%),
    repeating-linear-gradient(to right, transparent 0, transparent calc(12.5% - 1px), var(--line-strong) calc(12.5% - 1px), var(--line-strong) 12.5%);
}
.plan-axis-track i {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--tick);
  border-left: 1px solid var(--line-strong);
  font-style: normal;
}
.plan-axis-track i small { position: absolute; top: 9px; left: 5px; color: var(--muted); font-size: var(--text-2xs); font-weight: 550; white-space: nowrap; }
.plan-axis-track i:last-child small { right: 5px; left: auto; }

.plan-resource-row {
  width: 100%;
  min-height: 44px;
  padding: 0;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
  text-align: left;
}
.plan-resource-row:last-child { border-bottom: 0; }
.plan-resource-row:nth-child(odd) { background: #fbfbfa; }
.plan-resource-label {
  position: sticky;
  z-index: 3;
  left: 0;
  display: grid;
  min-height: 100%;
  align-content: center;
  gap: 3px;
  padding: 7px 10px;
  border-right: 1px solid var(--line);
  background: inherit;
}
.plan-resource-label strong {
  overflow: hidden;
  color: var(--ink-2);
  font-size: var(--text-xs);
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.plan-resource-label small { color: var(--muted); font-family: var(--font-mono); font-size: var(--text-2xs); }
.plan-resource-track { display: block; min-height: 43px; }
.plan-shift {
  position: absolute;
  z-index: 1;
  left: var(--start);
  display: block;
  width: max(var(--span), 2px);
  overflow: hidden;
  border: 1px solid var(--person-border);
  border-radius: 4px;
  background: var(--person-fill);
  box-shadow: 0 1px 2px rgba(20, 18, 16, .12), inset 0 1px 0 rgba(255, 255, 255, .46);
  color: var(--person-text);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.plan-resource-track .plan-shift { top: 7px; height: 29px; }
.plan-shift-label {
  position: relative;
  z-index: 4;
  display: flex;
  height: 100%;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 0 5px;
  pointer-events: none;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .72);
}
.plan-shift-label strong { overflow: hidden; font-size: var(--text-2xs); font-weight: 700; text-overflow: ellipsis; }
.plan-productive, .plan-break {
  position: absolute;
  top: 0;
  bottom: 0;
  left: var(--interval-start);
  width: max(var(--interval-span), 2px);
  cursor: help;
}
.plan-productive { z-index: 1; }
.plan-break {
  z-index: 3;
  border-right: 1px solid;
  border-left: 1px solid;
}
.plan-break.meal { border-color: #ad7720; background: #f1c463; }
.plan-break.rest { border-color: #277485; background: #71bfce; }
.plan-interval-tooltip {
  position: fixed;
  z-index: 20;
  display: grid;
  min-width: 126px;
  gap: 3px;
  padding: 8px 10px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: rgba(255, 255, 255, .98);
  box-shadow: var(--shadow);
  color: var(--ink);
  pointer-events: none;
}
.plan-interval-tooltip[hidden] { display: none; }
.plan-interval-tooltip strong { font-size: var(--text-xs); font-weight: 700; }
.plan-interval-tooltip span { color: var(--muted); font-family: var(--font-mono); font-size: var(--text-2xs); }
.plan-off { display: inline-flex; min-height: 43px; align-items: center; padding-left: 10px; color: var(--faint); font-size: var(--text-xs); }

.coverage-section { overflow: visible; }
.coverage-section .section-header { border-radius: 0; }
.coverage-header > div { display: grid; gap: 3px; }
.coverage-header span { color: var(--muted); font-size: var(--text-xs); }
.legend-line { width: 20px; height: 3px; border-radius: 2px; background: var(--chart-demand); }
.legend-line.configured { background: var(--chart-current); }
.legend-line.target { background: var(--chart-target); }
.capacity-chart {
  position: relative;
  padding: 2px 12px 9px;
  overflow-x: auto;
  overflow-y: hidden;
}
.capacity-chart svg { display: block; width: 100%; min-width: 720px; }
.chart-grid { stroke: var(--line); stroke-width: 1; }
.chart-axis { fill: var(--muted); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 8px; font-variant-numeric: tabular-nums; font-weight: 500; }
.chart-closed { fill: #f6f6f4; }
.chart-demand, .chart-configured, .chart-target { fill: none; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.chart-demand-area { fill: var(--chart-demand); opacity: .12; }
.chart-demand { stroke: var(--chart-demand); stroke-width: 2; }
.chart-configured { stroke: var(--chart-current); stroke-width: 2.25; }
.chart-target { stroke: var(--chart-target); stroke-width: 2.75; }
.chart-hover-indicator { pointer-events: none; }
.chart-hover-indicator[hidden] { display: none; }
.chart-crosshair { stroke: var(--chart-current); stroke-width: 1; stroke-dasharray: 3 3; }
.chart-point { fill: var(--surface); stroke-width: 3; }
.chart-point.demand { stroke: var(--chart-demand); }
.chart-point.configured { stroke: var(--chart-current); }
.chart-point.target { stroke: var(--chart-target); }
.chart-hit-area { fill: transparent; cursor: crosshair; pointer-events: all; }
.chart-tooltip {
  position: absolute;
  z-index: 2;
  display: grid;
  width: 230px;
  gap: 7px;
  padding: 11px 12px;
  border: 1px solid var(--line-strong);
  border-radius: 4px;
  background: rgba(255, 255, 255, .98);
  box-shadow: var(--shadow);
  color: var(--ink);
  font-size: var(--text-xs);
  pointer-events: none;
}
.chart-tooltip[hidden] { display: none; }
.chart-tooltip-time { font-family: var(--font-mono); font-size: var(--text-xs); }
.chart-tooltip span { display: grid; grid-template-columns: 9px 1fr auto; align-items: center; gap: 7px; }
.chart-tooltip span i { width: 8px; height: 8px; border-radius: 50%; background: var(--chart-demand); }
.chart-tooltip span i.configured { background: var(--chart-current); }
.chart-tooltip span i.target { background: var(--chart-target); }
.chart-tooltip span b { font-family: var(--font-mono); font-weight: 600; font-variant-numeric: tabular-nums; }
.chart-tooltip small { color: var(--muted); font-size: var(--text-xs); }

.action-status { display: inline-flex; min-height: 20px; align-items: center; padding: 1px 5px; border: 1px solid var(--line); border-radius: 2px; background: var(--surface); color: var(--muted); font-size: var(--text-2xs); font-weight: 650; }
.action-status.approved, .action-status.in_progress { border-color: #ead7ad; color: var(--warning); }
.action-status.effective { border-color: #bfd3bb; color: var(--good); }
.action-button { min-height: 30px; border-color: var(--line-strong); background: var(--surface); white-space: nowrap; }
.action-button:hover { border-color: var(--brand); color: var(--brand-dark); }
.candidate-select { width: 100%; height: 30px; padding: 0 26px 0 7px; overflow: hidden; border: 1px solid var(--field-line); border-radius: 3px; background: var(--field); box-shadow: inset 0 1px 1px rgba(0, 0, 0, .025); color: var(--ink); font-size: var(--text-xs); text-overflow: ellipsis; }
.candidate-select:disabled { border-color: transparent; background: transparent; color: var(--ink); opacity: 1; }

.requirement-detail-backdrop {
  position: fixed;
  z-index: 44;
  inset: 0;
  background: rgba(20, 18, 16, .28);
  backdrop-filter: blur(1px);
}
.requirement-detail-backdrop[hidden] { display: none; }
.requirement-detail-drawer {
  position: fixed;
  z-index: 45;
  top: 0;
  right: 0;
  display: grid;
  width: min(960px, calc(100vw - 32px));
  height: 100vh;
  grid-template-rows: auto minmax(0, 1fr) auto;
  border-left: 1px solid var(--line-strong);
  background: var(--surface);
  box-shadow: -16px 0 48px rgba(20, 18, 16, .12);
  outline: 0;
  transform: translateX(102%);
  transition: transform .2s ease;
}
.requirement-detail-drawer.open { transform: translateX(0); }
.requirement-detail-drawer > header {
  display: flex;
  min-height: 102px;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px 15px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.requirement-detail-heading { min-width: 0; }
.requirement-detail-heading .eyebrow { margin-bottom: 7px; }
.requirement-detail-heading h2 { overflow: hidden; margin: 0; font-size: 1.125rem; line-height: 1.25; letter-spacing: -.02em; text-overflow: ellipsis; white-space: nowrap; }
.requirement-detail-meta { display: flex; min-height: 22px; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.requirement-detail-meta > button {
  overflow: hidden;
  max-width: 310px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ink);
  font-size: var(--text-xs);
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: pointer;
}
.requirement-detail-meta > button:hover { text-decoration: underline; }
.requirement-detail-content { min-height: 0; overflow: auto; overscroll-behavior: contain; }
.requirement-detail-section { padding: 22px 28px 25px; border-bottom: 1px solid var(--line); scroll-margin-top: 16px; }
.requirement-detail-section.resolution { background: #fbfbfa; }
.requirement-detail-section:last-child { border-bottom: 0; }
.requirement-detail-section > h3 {
  margin: 0 0 13px;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: .625rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.requirement-detail-summary { margin: 0 0 16px; color: var(--ink-2); font-size: .8125rem; line-height: 1.55; }
.requirement-person {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 10px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.requirement-person-mark {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: var(--header);
  color: var(--ink-2);
  font-family: var(--font-mono);
  font-size: .6875rem;
  font-weight: 600;
}
.requirement-person > div:nth-child(2) { display: grid; min-width: 0; }
.requirement-person > div:nth-child(2) > span { color: var(--muted); font-size: var(--text-2xs); }
.requirement-person > div:nth-child(2) > strong { overflow: hidden; margin-top: 2px; font-size: .8125rem; text-overflow: ellipsis; white-space: nowrap; }
.requirement-person > div:nth-child(2) > small { overflow: hidden; margin-top: 3px; color: var(--muted); font-size: var(--text-2xs); text-overflow: ellipsis; white-space: nowrap; }
.requirement-person .candidate-select { width: 210px; max-width: min(210px, 34vw); }
.fictional-person-label {
  padding: 3px 5px;
  border: 1px solid #ead7ad;
  border-radius: 2px;
  color: var(--warning);
  font-family: var(--font-mono);
  font-size: .5625rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  white-space: nowrap;
}
.requirement-detail-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 14px;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.requirement-detail-facts > div {
  display: grid;
  min-height: 56px;
  align-content: center;
  gap: 4px;
  padding: 8px 10px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.requirement-detail-facts span, .requirement-impact-grid span { color: var(--muted); font-size: var(--text-2xs); }
.requirement-detail-facts strong { overflow: hidden; font-size: var(--text-xs); font-weight: 600; line-height: 1.35; text-overflow: ellipsis; }
.requirement-impact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.requirement-impact-grid > div {
  display: grid;
  min-height: 68px;
  align-content: center;
  gap: 7px;
  padding: 10px 12px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.requirement-impact-grid strong { font-size: .875rem; font-weight: 600; line-height: 1.25; font-variant-numeric: tabular-nums; }
.requirement-impact-grid .risk strong { color: var(--risk); }
.requirement-impact-grid .warning strong { color: var(--warning); }
.requirement-impact-grid .good strong { color: var(--good); }
.requirement-subheading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 9px; }
.requirement-subheading strong { font-size: .75rem; font-weight: 600; }
.requirement-subheading span { color: var(--muted); font-size: var(--text-2xs); }
.requirement-schedule { margin-bottom: 18px; scroll-margin-top: 14px; }
.requirement-schedule .table-scroll { border: 1px solid var(--line); }
.requirement-schedule table { width: 100%; min-width: 570px; border-spacing: 0; border-collapse: separate; table-layout: fixed; font-size: var(--text-2xs); }
.requirement-schedule th, .requirement-schedule td { height: 38px; padding: 7px 8px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); line-height: 1.35; text-align: left; vertical-align: middle; }
.requirement-schedule th { background: var(--table-header); color: var(--muted); font-weight: 650; }
.requirement-schedule th:last-child, .requirement-schedule td:last-child { border-right: 0; }
.requirement-schedule tbody tr:last-child td { border-bottom: 0; }
.requirement-schedule th:first-child, .requirement-schedule td:first-child { width: 92px; }
.requirement-schedule th:last-child, .requirement-schedule td:last-child { width: 104px; }
.requirement-decision-editor {
  margin-bottom: 18px;
  padding: 12px;
  border: 1px solid #d7c5d1;
  background: #fbf4f9;
}
.requirement-decision-editor label { display: grid; gap: 6px; }
.requirement-decision-editor label > span { color: var(--muted); font-size: var(--text-2xs); font-weight: 650; }
.requirement-decision-editor .requirement-resolution-select { max-width: 100%; background: var(--surface); }
.requirement-decision-editor small { color: var(--muted); font-size: var(--text-xs); line-height: 1.45; }
.requirement-resolution-boundary { color: var(--ink-2) !important; }
.requirement-implementation {
  display: grid;
  gap: 12px;
  margin-bottom: 20px;
  padding: 14px;
  border: 1px solid var(--line-strong);
  background: var(--surface);
}
.requirement-implementation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.requirement-implementation-heading > div { display: grid; gap: 3px; }
.requirement-implementation-heading strong { font-size: .8125rem; }
.requirement-implementation-heading small { color: var(--muted); font-size: var(--text-xs); line-height: 1.35; }
.requirement-implementation-heading > span {
  flex: 0 0 auto;
  padding: 3px 6px;
  border: 1px solid currentColor;
  border-radius: 2px;
  font-size: .625rem;
  font-weight: 700;
  white-space: nowrap;
}
.requirement-implementation-heading > span.ready { color: var(--good); }
.requirement-implementation-heading > span.pending { color: var(--warning); }
.requirement-implementation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 11px 12px;
}
.requirement-implementation-field { display: grid; min-width: 0; gap: 5px; }
.requirement-implementation-field.wide,
.requirement-implementation-field.checkbox { grid-column: 1 / -1; }
.requirement-implementation-field > label {
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
}
.requirement-implementation-field > label span { margin-left: 2px; color: var(--brand); }
.requirement-implementation-field input:not([type="checkbox"]),
.requirement-implementation-field select,
.requirement-implementation-field textarea {
  width: 100%;
  min-height: 36px;
  padding: 7px 8px;
  border: 1px solid var(--field-line);
  border-radius: 3px;
  background: var(--field);
  color: var(--ink);
  font: inherit;
  font-size: var(--text-xs);
}
.requirement-implementation-field textarea { resize: vertical; line-height: 1.4; }
.requirement-implementation-field input:focus,
.requirement-implementation-field select:focus,
.requirement-implementation-field textarea:focus {
  border-color: var(--tambo-purple);
  outline: 2px solid rgba(119, 35, 92, .12);
}
.requirement-implementation-field input:disabled,
.requirement-implementation-field select:disabled,
.requirement-implementation-field textarea:disabled { opacity: .72; }
.requirement-implementation-field.checkbox {
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 8px;
  border: 1px solid var(--line);
  background: var(--header);
  color: var(--ink-2);
  font-size: var(--text-xs);
  cursor: pointer;
}
.requirement-implementation-field.checkbox input { width: 16px; height: 16px; margin: 0; accent-color: var(--tambo-purple); }
.requirement-implementation-pending {
  display: grid;
  gap: 3px;
  padding: 8px 9px;
  border-left: 3px solid var(--warning);
  background: var(--warning-soft);
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.4;
}
.requirement-implementation-pending strong { font-size: var(--text-2xs); }
.requirement-implementation-ready { color: var(--good); font-size: var(--text-xs); font-weight: 650; }
.requirement-resolution-list { border-top: 1px solid var(--line); }
.requirement-resolution-list > div { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 9px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.requirement-resolution-list > div > span { display: grid; width: 22px; height: 22px; place-items: center; border: 1px solid var(--line-strong); border-radius: 50%; color: var(--muted); font-family: var(--font-mono); font-size: .625rem; }
.requirement-resolution-list p, .requirement-checks p, .requirement-timeline p { display: grid; gap: 3px; min-width: 0; margin: 0; }
.requirement-resolution-list strong, .requirement-checks strong, .requirement-timeline strong { font-size: var(--text-xs); font-weight: 600; }
.requirement-resolution-list small, .requirement-checks small { color: var(--muted); font-size: var(--text-xs); line-height: 1.4; }
.requirement-checks { margin-bottom: 20px; border-top: 1px solid var(--line); }
.requirement-checks > div { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 9px; min-height: 52px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.requirement-checks i { width: 7px; height: 7px; border-radius: 50%; background: var(--faint); }
.requirement-checks .passed i { background: var(--good); }
.requirement-checks .pending i { background: var(--warning); }
.requirement-checks .warning i { background: var(--risk); }
.requirement-checks > div > span { color: var(--muted); font-family: var(--font-mono); font-size: .5625rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.requirement-checks .passed > span { color: var(--good); }
.requirement-checks .pending > span { color: var(--warning); }
.requirement-checks .warning > span { color: var(--risk); }
.requirement-timeline { border-top: 1px solid var(--line); }
.requirement-timeline > div { display: grid; grid-template-columns: 96px 9px minmax(0, 1fr); gap: 9px; min-height: 48px; align-items: start; padding: 11px 0; border-bottom: 1px solid var(--line); }
.requirement-timeline time { color: var(--muted); font-family: var(--font-mono); font-size: .625rem; line-height: 1.35; }
.requirement-timeline i { width: 7px; height: 7px; margin-top: 3px; border: 2px solid var(--surface); border-radius: 50%; background: var(--ink-2); box-shadow: 0 0 0 1px var(--line-strong); }
.requirement-timeline p span { color: var(--muted); font-size: var(--text-xs); line-height: 1.4; }
.requirement-history { margin-top: 16px; border-top: 1px solid var(--line); }
.requirement-history summary {
  min-height: 42px;
  padding: 13px 0 10px;
  color: var(--muted);
  font-size: var(--text-xs);
  font-weight: 650;
  cursor: pointer;
}
.requirement-detail-footer {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-top: 1px solid var(--line);
  background: var(--header);
}
.requirement-detail-footer > div { display: flex; align-items: center; gap: 7px; }
.requirement-detail-complete { color: var(--good); font-size: var(--text-xs); font-weight: 600; }
.requirement-detail-complete.warning { display: grid; max-width: 520px; gap: 3px; color: var(--warning); text-align: right; }
.requirement-detail-complete.warning small { color: var(--muted); font-weight: 500; line-height: 1.4; }
.requirement-detail-pending { color: var(--warning); font-size: var(--text-xs); font-weight: 650; }

.requirement-detail-drawer { width: min(1040px, calc(100vw - 24px)); }
.requirement-detail-drawer > header {
  min-height: 112px;
  padding: 16px 22px 14px;
}
.requirement-detail-heading { flex: 1; }
.requirement-detail-meta { gap: 7px 10px; }
.requirement-detail-context {
  display: grid;
  min-width: 118px;
  gap: 2px;
  padding-left: 10px;
  border-left: 1px solid var(--line);
}
.requirement-detail-context.owner { margin-left: auto; }
.requirement-detail-context small {
  color: var(--muted);
  font-size: .5625rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.requirement-detail-context strong {
  overflow: hidden;
  font-size: var(--text-xs);
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.requirement-detail-section { padding: 19px 28px 22px; }
.requirement-detail-section.decision { background: #fbf7fa; }
.requirement-detail-section.resolution { background: var(--surface); }
.requirement-detail-section > h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 13px;
  color: var(--ink);
  font-family: inherit;
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: -.01em;
  text-transform: none;
}
.requirement-detail-section > h3 > span {
  display: grid;
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  background: var(--surface);
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: .5625rem;
}
.requirement-keyword-list { border-top: 1px solid var(--line); }
.requirement-keyword-list > div,
.requirement-person-keyword {
  display: grid;
  min-height: 48px;
  grid-template-columns: 150px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
}
.requirement-keyword-list > div > span,
.requirement-person-keyword > span {
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 650;
}
.requirement-keyword-list > div > strong,
.requirement-person-keyword > div > strong {
  font-size: var(--text-xs);
  font-weight: 650;
  line-height: 1.45;
}
.requirement-keyword-list > div > small,
.requirement-person-keyword > div > small {
  color: var(--muted);
  font-size: var(--text-2xs);
  line-height: 1.4;
}
.requirement-person-keyword > div {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.requirement-person-keyword .candidate-select { width: min(280px, 100%); margin-top: 5px; }
.requirement-impact-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 0;
  gap: 10px;
}
.requirement-impact-grid > div {
  min-height: 76px;
  padding: 12px;
  border: 1px solid var(--line);
  background: var(--surface);
}
.requirement-decision-editor {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 15px;
  border: 1px solid #d7c5d1;
  background: var(--surface);
}
.requirement-decision-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.requirement-recommendation { color: var(--brand-dark); font-size: var(--text-xs); font-weight: 700; }
.requirement-readiness {
  padding: 3px 6px;
  border: 1px solid currentColor;
  border-radius: 2px;
  font-size: .625rem;
  font-weight: 700;
  white-space: nowrap;
}
.requirement-readiness.ready { color: var(--good); }
.requirement-readiness.pending { color: var(--warning); }
.requirement-decision-editor .requirement-resolution-select {
  height: 40px;
  max-width: 100%;
  padding-left: 10px;
  background: var(--surface);
  font-size: .8125rem;
  font-weight: 650;
}
.requirement-decision-editor small { display: block; color: var(--muted); font-size: var(--text-xs); line-height: 1.45; }
.requirement-recalculation-gate {
  display: grid;
  justify-items: start;
  gap: 5px;
  padding: 10px 11px;
  border-left: 3px solid var(--warning);
  background: var(--warning-soft);
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.45;
}
.requirement-recalculation-gate strong { color: var(--warning); }
.requirement-recalculation-gate .button { margin-top: 3px; }
.requirement-implementation {
  gap: 12px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.requirement-implementation-pending {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-left: 3px solid var(--warning);
  background: var(--warning-soft);
}
.requirement-implementation-pending strong { color: var(--warning); }
.requirement-implementation-pending span { color: var(--ink-2); }
.requirement-implementation-ready {
  padding: 9px 11px;
  border-left: 3px solid var(--good);
  background: var(--good-soft);
}
.requirement-detail-section.problem { background: #fbfbfa; }
.requirement-detail-table-scroll {
  border: 1px solid var(--line);
  background: var(--surface);
  overscroll-behavior-inline: contain;
}
.requirement-detail-table { table-layout: auto; }
.requirement-detail-table col.requirement-detail-label-column { width: 190px; }
.requirement-detail-table col.requirement-alternative-name-column { width: 28%; }
.requirement-detail-table col.requirement-alternative-action-column { width: 112px; }
.requirement-detail-table thead th { position: static; }
.requirement-detail-table tbody th,
.requirement-detail-table tbody td {
  overflow: visible;
  height: auto;
  padding: 10px 12px;
  vertical-align: top;
  line-height: 1.45;
  text-overflow: clip;
  white-space: normal;
}
.requirement-detail-table tbody th {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: var(--table-header);
  color: var(--ink-2);
  font-size: var(--text-xs);
  font-weight: 650;
  text-align: left;
}
.requirement-detail-table tbody td {
  color: var(--ink);
  font-size: var(--text-xs);
}
.requirement-detail-table tbody tr:last-child th,
.requirement-detail-table tbody tr:last-child td { border-bottom: 0; }
.requirement-detail-table tbody tr:hover th,
.requirement-detail-table tbody tr:hover td { background: var(--header); }
.requirement-detail-table tbody td > strong {
  font-weight: 650;
}
.requirement-table-secondary {
  display: block;
  margin-top: 3px;
  color: var(--muted);
  font-size: var(--text-2xs);
}
.requirement-inline-status {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  margin-left: 8px;
  padding: 1px 6px;
  border: 1px solid #d8c4a4;
  border-radius: 999px;
  background: #fff8e8;
  color: #76520f;
  font-size: var(--text-2xs);
  font-weight: 650;
  vertical-align: middle;
}
.requirement-table-list {
  margin: 6px 0 0;
  padding-left: 17px;
  color: var(--warning);
  font-size: var(--text-2xs);
  line-height: 1.45;
}
.requirement-proposed-solution .requirement-detail-table tbody tr:first-child td strong {
  color: var(--brand-dark);
}
.requirement-alternatives { min-width: 620px; }
.requirement-alternatives .requirement-table-list {
  margin: 0;
  color: var(--ink);
}
.requirement-alternatives tbody td:last-child {
  vertical-align: middle;
  text-align: right;
}
.requirement-alternatives tr[data-record-state="infeasible"] th,
.requirement-alternatives tr[data-record-state="infeasible"] td {
  background: #faf8f5;
  color: var(--muted);
}
.requirement-alternatives tr[data-record-state="infeasible"] td > strong {
  color: var(--warning);
}
.requirement-next-steps { min-width: 660px; }
.requirement-next-steps th:first-child { min-width: 190px; }
.requirement-next-steps .requirement-candidate-select {
  width: 100%;
  min-width: 180px;
}
.requirement-alternative-action {
  min-height: 30px;
  white-space: nowrap;
}
.requirement-empty-alternatives,
.requirement-next-step-intro {
  color: var(--muted);
  font-size: var(--text-xs);
  line-height: 1.45;
}
.requirement-empty-alternatives,
.requirement-next-step-intro { margin: 0 0 12px; }
.requirement-detail-secondary { padding: 0 28px 28px; }
.requirement-lifecycle-summary {
  margin-top: 18px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: var(--surface);
}
.requirement-lifecycle-summary > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.requirement-lifecycle-summary > header strong { font-size: var(--text-sm); }
.requirement-lifecycle-summary > header span {
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: .5625rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.requirement-lifecycle-summary > div {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(112px, 1fr));
  gap: 8px;
}
.requirement-lifecycle-summary p {
  display: grid;
  gap: 3px;
  margin: 0;
  padding: 8px 9px;
  background: var(--header);
}
.requirement-lifecycle-summary p.simulation {
  border-left: 3px solid var(--warning);
  background: var(--warning-soft);
}
.requirement-lifecycle-summary small {
  color: var(--muted);
  font-size: .625rem;
}
.requirement-lifecycle-summary p strong { font-size: var(--text-xs); }
.requirement-attention {
  margin-top: 18px;
  padding: 12px 14px 2px;
  border: 1px solid #ecd6aa;
  background: #fffaf0;
}
.requirement-attention > strong { color: var(--warning); font-size: var(--text-xs); }
.requirement-checks { margin: 6px 0 10px; }
.requirement-disclosure {
  border-bottom: 1px solid var(--line);
  scroll-margin-top: 14px;
}
.requirement-disclosure:first-of-type { border-top: 1px solid var(--line); }
.requirement-disclosure > summary {
  display: flex;
  min-height: 50px;
  align-items: center;
  gap: 10px;
  padding: 0 2px;
  color: var(--ink-2);
  font-size: var(--text-xs);
  font-weight: 700;
  cursor: pointer;
  list-style-position: inside;
}
.requirement-disclosure > summary > span { flex: 1; }
.requirement-disclosure > summary > strong {
  display: grid;
  min-width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--muted);
  font-family: var(--font-mono);
  font-size: .5625rem;
}
.requirement-change-list { border-top: 1px solid var(--line); }
.requirement-change-row {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr) 18px minmax(0, 1fr) 112px;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.requirement-change-row:last-child { border-bottom: 0; }
.requirement-change-row > strong { font-size: var(--text-xs); }
.requirement-change-row > div { display: grid; gap: 3px; min-width: 0; }
.requirement-change-row > div > span { color: var(--muted); font-size: .5625rem; font-weight: 650; text-transform: uppercase; }
.requirement-change-row p { margin: 0; color: var(--ink-2); font-size: var(--text-xs); line-height: 1.35; }
.requirement-change-row > i { color: var(--faint); font-style: normal; text-align: center; }
.requirement-change-row > small { color: var(--good); font-size: var(--text-2xs); font-weight: 650; line-height: 1.35; }
.requirement-validations .requirement-checks { margin-bottom: 8px; }
.requirement-history { margin-top: 0; border-top: 0; }
.requirement-history > .requirement-keyword-list { padding: 0 2px; }
.requirement-history .requirement-timeline { margin-bottom: 8px; }

.manual-event-dialog {
  width: min(780px, calc(100vw - 40px));
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 5px;
  background: var(--surface);
  box-shadow: 0 24px 70px rgba(20, 18, 16, .22);
  color: var(--ink);
}
.manual-event-dialog::backdrop { background: rgba(20, 18, 16, .4); backdrop-filter: blur(1px); }
.manual-event-dialog form { display: grid; max-height: calc(100vh - 48px); grid-template-rows: auto minmax(0, 1fr) auto; }
.manual-event-dialog header,
.manual-event-dialog footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  background: var(--header);
}
.manual-event-dialog header h2 { margin: 0; font-size: 1rem; }
.manual-event-dialog footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }
.manual-event-content { display: grid; gap: 14px; padding: 20px; overflow: auto; }
.manual-event-help {
  margin: 0;
  padding: 10px 12px;
  border-left: 3px solid var(--warning);
  background: var(--warning-soft);
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.5;
}
.manual-event-validation {
  margin: -6px 0 0;
  color: var(--warning);
  font-size: var(--text-xs);
}
.manual-event-empty {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
  border-left: 3px solid var(--warning);
  background: var(--warning-soft);
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.4;
}
.manual-event-empty strong { color: var(--warning); }
.manual-change-type { max-width: 360px; }
.manual-change-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.manual-change-fields > .wide,
.manual-change-fields > .manual-event-exchange,
.manual-change-fields > .manual-onboarding-fields { grid-column: 1 / -1; }
.manual-change-empty {
  display: grid;
  gap: 4px;
  padding: 18px;
  border: 1px dashed var(--line-strong);
  background: var(--header);
  color: var(--muted);
  font-size: var(--text-xs);
}
.manual-change-empty strong { color: var(--ink); font-size: var(--text-sm); }
.manual-onboarding-fields { min-width: 0; border: 1px solid var(--line); background: var(--workbench); }
.manual-onboarding-fields .novelty-form-fields { padding-bottom: 10px; }
.manual-onboarding-fields .onboarding-week-editor,
.manual-onboarding-fields #onboarding-preview { margin-right: 14px; margin-left: 14px; }
.manual-onboarding-actions { display: flex; justify-content: flex-end; padding: 0 14px 12px; }
.manual-event-field { display: grid; min-width: 0; gap: 6px; }
.manual-event-field > span { color: var(--muted); font-size: var(--text-xs); font-weight: 650; }
.manual-event-field input,
.manual-event-field select {
  width: 100%;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid var(--field-line);
  border-radius: 3px;
  background: var(--field);
  color: var(--ink);
  font-size: var(--text-xs);
}
label:has(input[type="date"])::after {
  content: "Usa el selector de fecha";
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: var(--text-2xs);
  font-weight: 500;
}
.manual-event-pair { display: grid; grid-template-columns: .8fr 1.2fr; gap: 12px; }
.manual-event-exchange { display: grid; gap: 12px; }
.manual-exchange-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid var(--line);
  background: var(--header);
}
.manual-exchange-summary > div { display: grid; min-width: 0; gap: 3px; }
.manual-exchange-summary small,
.manual-exchange-summary span { color: var(--muted); font-size: var(--text-2xs); }
.manual-exchange-summary strong {
  overflow: hidden;
  font-size: var(--text-xs);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.manual-exchange-summary i { color: var(--brand); font-style: normal; font-size: 1.1rem; }
.manual-event-consent {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.4;
}
.manual-event-consent input { margin-top: 2px; accent-color: var(--brand); }
.manual-event-exchange .manual-event-validation {
  margin: 0;
  padding: 9px 11px;
  border-left: 3px solid var(--good);
  background: var(--good-soft);
  color: var(--ink-2);
}
.manual-event-context {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 7px 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  background: var(--header);
  font-size: var(--text-xs);
}
.manual-event-context span { color: var(--muted); }
.manual-event-context strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manual-event-date-review {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid var(--line);
  background: var(--workbench);
}
.manual-event-date-review span { color: var(--muted); font-size: var(--text-2xs); }
.manual-event-date-review strong { font-size: var(--text-xs); }
.manual-event-validation {
  margin: -4px 0 0;
  padding: 9px 11px;
  border: 1px solid color-mix(in srgb, var(--risk) 38%, white);
  border-radius: 4px;
  background: var(--risk-soft);
  color: var(--risk);
  font-size: var(--text-xs);
  font-weight: 650;
}

.drawer-backdrop { position: fixed; z-index: 49; inset: 0; background: rgba(20, 18, 16, .32); backdrop-filter: blur(1px); }
body.assistant-open { overflow: hidden; }
.assistant-drawer {
  position: fixed;
  z-index: 50;
  top: 0;
  right: 0;
  display: grid;
  grid-template-rows: auto auto 1fr auto auto;
  width: min(580px, 96vw);
  height: 100vh;
  border-left: 1px solid var(--line-strong);
  background: var(--surface);
  box-shadow: -18px 0 48px rgba(20, 18, 16, .14);
  transform: translateX(105%);
  transition: transform .2s ease;
}
.assistant-drawer.open { transform: translateX(0); }
.assistant-drawer > header { display: flex; align-items: center; gap: 11px; min-height: 62px; padding: 0 15px; border-bottom: 1px solid var(--line); background: var(--surface); }
.assistant-avatar { display: grid; flex: 0 0 auto; place-items: center; width: 34px; height: 34px; border-radius: 5px; background: linear-gradient(145deg, var(--brand), var(--tambo-purple)); color: white; font-size: 1.15rem; font-weight: 700; }
.assistant-drawer header > div:nth-child(2) { display: grid; flex: 1; }
.assistant-drawer header small { margin-top: 3px; color: var(--muted); font-size: var(--text-xs); }
.assistant-reset { padding: 6px 8px; border: 1px solid var(--line); border-radius: 3px; background: var(--surface); color: var(--muted); font-size: var(--text-xs); cursor: pointer; }
.assistant-reset:hover { border-color: var(--line-strong); color: var(--ink); }
.icon-button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 3px; background: transparent; font-size: 1.5rem; cursor: pointer; }
.icon-button:hover { background: var(--header); }
.assistant-scope { display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 8px 18px; border-bottom: 1px solid var(--line); background: var(--header); color: var(--muted); font-size: var(--text-xs); }
.assistant-scope > span:first-child { width: 7px; height: 7px; border-radius: 50%; background: var(--good); box-shadow: 0 0 0 3px var(--good-soft); }
.chat-transcript { overflow: auto; padding: 20px; background: #fbfbfa; scroll-behavior: smooth; }
.chat-welcome { max-width: 480px; margin: 18px auto 0; }
.chat-welcome .eyebrow { margin-bottom: 8px; }
.chat-welcome > strong { font-size: 1.15rem; letter-spacing: -.02em; }
.chat-welcome > p { margin: 8px 0 18px; color: var(--muted); line-height: 1.55; }
.prompt-list { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.prompt-list button {
  display: grid;
  gap: 5px;
  min-height: 66px;
  padding: 10px 11px;
  border: 1px solid var(--line);
  border-radius: 4px;
  background: var(--surface);
  color: var(--ink-2);
  font-size: var(--text-xs);
  line-height: 1.35;
  text-align: left;
  cursor: pointer;
}
.prompt-list button span { color: var(--tambo-purple); font-family: var(--font-mono); font-size: .625rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.prompt-list button:hover { border-color: #d6a7c9; background: #fffafd; }
.chat-trust-note { display: flex; align-items: center; gap: 7px; margin-top: 16px !important; font-size: var(--text-xs); }
.chat-trust-note i { width: 7px; height: 7px; border-radius: 50%; background: var(--good); }
.message { margin: 0 0 18px; }
.message.user { display: flex; justify-content: flex-end; }
.message.user p { max-width: 84%; margin: 0; padding: 10px 12px; border: 1px solid #efd5db; border-radius: 7px 7px 2px 7px; background: var(--brand-soft); color: var(--ink-2); font-size: .8125rem; line-height: 1.5; white-space: pre-wrap; }
.message.assistant { padding: 13px 14px; border: 1px solid var(--line); border-left: 3px solid var(--tambo-purple); border-radius: 3px 7px 7px 3px; background: var(--surface); box-shadow: 0 2px 8px rgba(20, 18, 16, .035); }
.message.assistant.insufficient_data, .message.assistant.needs_clarification { border-left-color: var(--warning); }
.chat-answer-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.chat-answer-header > span { display: inline-flex; align-items: center; gap: 6px; color: var(--good); font-family: var(--font-mono); font-size: .625rem; font-weight: 600; letter-spacing: .035em; text-transform: uppercase; }
.chat-answer-header > span.local { color: var(--warning); }
.chat-answer-header > span i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.chat-answer-header > small { color: var(--faint); font-size: var(--text-xs); }
.chat-claim { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; padding: 9px 0; border-top: 1px solid var(--line); }
.chat-answer-header + .chat-claim, .chat-status-message + .chat-claim { border-top: 0; }
.chat-claim p, .chat-status-message p { margin: 0; color: var(--ink-2); font-size: .8125rem; line-height: 1.58; white-space: pre-wrap; }
.chat-claim-citations { display: flex; flex-wrap: wrap; gap: 3px; padding-top: 1px; }
.chat-claim-citations button { display: grid; width: 20px; height: 20px; place-items: center; padding: 0; border: 1px solid #d8afd0; border-radius: 50%; background: #fff8fd; color: var(--tambo-purple); font-family: var(--font-mono); font-size: .6rem; font-weight: 600; cursor: pointer; }
.chat-claim-citations button:hover { background: var(--tambo-purple); color: white; }
.chat-status-message { margin: 4px 0 10px; padding: 10px 11px; border-radius: 3px; background: var(--warning-soft); }
.chat-evidence-panel { margin-top: 10px; border: 1px solid var(--line); border-radius: 3px; background: var(--header); }
.chat-evidence-panel summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 38px; padding: 8px 10px; color: var(--muted); font-size: var(--text-xs); font-weight: 600; cursor: pointer; list-style: none; }
.chat-evidence-panel summary::-webkit-details-marker { display: none; }
.chat-evidence-panel summary::before { content: "＋"; color: var(--tambo-purple); font-family: var(--font-mono); }
.chat-evidence-panel[open] summary::before { content: "−"; }
.chat-evidence-panel summary span { flex: 1; }
.chat-evidence-panel summary b { display: grid; min-width: 20px; height: 20px; place-items: center; border-radius: 10px; background: var(--surface); color: var(--muted); font-family: var(--font-mono); font-size: .625rem; }
.chat-evidence-panel ol { display: grid; gap: 0; margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.chat-evidence-panel li { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 8px; padding: 10px; border-bottom: 1px solid var(--line); scroll-margin: 80px; }
.chat-evidence-panel li:last-child { border-bottom: 0; }
.chat-evidence-number { display: grid; width: 20px; height: 20px; place-items: center; border: 1px solid #d8afd0; border-radius: 50%; background: #fff8fd; color: var(--tambo-purple); font-family: var(--font-mono); font-size: .6rem; font-weight: 600; }
.chat-evidence-panel li > div { display: grid; gap: 4px; min-width: 0; }
.chat-evidence-panel li strong { font-size: var(--text-xs); font-weight: 600; }
.chat-evidence-panel li small { color: var(--faint); font-size: .65625rem; line-height: 1.4; }
.chat-evidence-value { color: var(--ink-2); font-family: var(--font-mono); font-size: .6875rem; overflow-wrap: anywhere; }
.chat-evidence-data { display: grid; gap: 4px; margin: 2px 0; }
.chat-evidence-data > div { display: grid; grid-template-columns: minmax(110px, .75fr) minmax(0, 1.25fr); gap: 8px; }
.chat-evidence-data dt { color: var(--muted); font-size: .65625rem; text-transform: capitalize; }
.chat-evidence-data dd { min-width: 0; margin: 0; color: var(--ink-2); font-family: var(--font-mono); font-size: .65625rem; overflow-wrap: anywhere; }
.chat-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.chat-links button { padding: 7px 9px; border: 1px solid #e2b8d6; border-radius: 3px; background: #fffafd; color: var(--tambo-purple); font-size: var(--text-xs); font-weight: 600; cursor: pointer; }
.chat-links button:hover { background: #fcedf8; }
.chat-links button span { margin-left: 4px; }
.chat-follow-ups { display: grid; gap: 6px; margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line); }
.chat-follow-ups > span { color: var(--faint); font-size: .65625rem; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; }
.chat-follow-ups button { padding: 0; border: 0; background: transparent; color: var(--brand-dark); font-size: var(--text-xs); line-height: 1.4; text-align: left; cursor: pointer; }
.chat-follow-ups button::before { margin-right: 6px; color: var(--faint); content: "↳"; }
.chat-follow-ups button:hover { color: var(--tambo-purple); text-decoration: underline; }
.message.pending { border-left-color: var(--faint); }
.chat-retrieving { display: flex; align-items: center; gap: 11px; min-height: 44px; }
.chat-retrieving-mark { display: flex; gap: 3px; }
.chat-retrieving-mark i { width: 5px; height: 5px; border-radius: 50%; background: var(--tambo-purple); animation: pulse 1s infinite; }
.chat-retrieving-mark i:nth-child(2) { animation-delay: .15s; }
.chat-retrieving-mark i:nth-child(3) { animation-delay: .3s; }
.chat-retrieving p { display: grid; gap: 3px; margin: 0; }
.chat-retrieving strong { font-size: var(--text-xs); }
.chat-retrieving small { color: var(--muted); font-size: var(--text-xs); }
@keyframes pulse { 50% { opacity: .25; } }
.chat-form { display: grid; grid-template-columns: minmax(0, 1fr) 42px; gap: 8px; align-items: end; padding: 12px 16px 7px; border-top: 1px solid var(--line); background: var(--surface); }
.chat-form textarea { min-height: 42px; max-height: 112px; padding: 11px 10px; resize: none; border: 1px solid var(--line-strong); border-radius: 4px; outline: 0; background: var(--field); font: inherit; font-size: .8125rem; line-height: 1.4; overflow-y: auto; }
.chat-form textarea:focus { border-color: #cb85b7; box-shadow: 0 0 0 2px rgba(175, 18, 128, .08); background: var(--surface); }
.chat-form button { height: 42px; border: 0; border-radius: 4px; background: var(--brand); color: white; font-size: 1.2rem; cursor: pointer; }
.chat-form button:hover { background: var(--brand-dark); }
.chat-form button:disabled { background: var(--faint); cursor: wait; }
.chat-note { margin: 0; padding: 0 18px 11px; background: var(--surface); color: var(--faint); font-size: .65625rem; text-align: right; }

.details-dialog { width: min(680px, calc(100vw - 40px)); padding: 0; border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow); }
.details-dialog::backdrop { background: rgba(20, 18, 16, .4); }
.dialog-shell > header, .dialog-shell > footer { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.dialog-shell > header h2 { margin: 0; font-size: 1.25rem; }
.dialog-shell > footer { gap: 10px; justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }
#details-content { padding: 6px 20px 12px; }
.detail-row { display: grid; grid-template-columns: 170px 1fr; gap: 16px; margin: 0; padding: 12px 0; border-bottom: 1px solid var(--line); }
.detail-row dt { font-weight: 700; }
.detail-row dd { margin: 0; color: var(--muted); line-height: 1.45; }
.detail-callout { margin-top: 14px; padding: 12px; border-radius: 3px; background: var(--warning-soft); color: #684000; line-height: 1.45; }

.toast-region { position: fixed; z-index: 60; right: 22px; bottom: 22px; }
.toast { display: flex; align-items: center; gap: 11px; width: min(520px, calc(100vw - 44px)); padding: 13px 15px; border: 1px solid #b7dfca; border-radius: 4px; background: var(--surface); box-shadow: var(--shadow); }
.toast.warning { border-color: #efce92; }
.toast-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--good-soft); color: var(--good); font-weight: 800; }
.toast.warning .toast-icon { background: var(--warning-soft); color: var(--warning); }
.toast > div { display: grid; flex: 1; }
.toast small { margin-top: 3px; color: var(--muted); }

@media (max-width: 1500px) {
  .view { padding-right: 18px; padding-left: 18px; }
}

@media (max-width: 1320px) {
  .topbar { padding: 0 14px; }
  .week-context { display: none; }
  .planning-service-status { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }
}

@media (max-width: 1180px) {
  .requirements-toolbar { align-items: stretch; flex-direction: column; gap: 8px; padding-top: 9px; padding-bottom: 9px; }
  .requirements-toolbar-controls { width: 100%; justify-content: flex-start; flex-wrap: wrap; }
  .requirements-workspace .requirements-table-scroll { max-height: calc(100vh - 178px); }
  .store-header { grid-template-columns: 1fr; align-items: stretch; }
  .store-filter-bar { justify-content: flex-start; flex-wrap: wrap; }
  .store-match-count { margin-left: auto; }
  .new-store-builder { grid-template-columns: 1fr; }
  #new-store-map { height: 440px; }
  .new-store-scenario-form { align-self: stretch; }
  .new-store-form-fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .new-store-form-fields label.wide { grid-column: auto; }
  .new-store-summary.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .new-store-summary.four > div:nth-child(2) { border-right: 0; }
  .new-store-summary.four > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
}

@media (max-width: 900px) {
  .topbar { padding: 0 12px; }
  .brand { margin-right: 2px; padding-right: 12px; }
  .brand span { display: none; }
  .primary-nav button { padding: 0 10px; font-size: .75rem; }
  .nav-group > summary { padding: 0 10px; font-size: .75rem; }
  .assistant-button { padding: 0 10px; }
  .view { padding: 18px 16px 40px; }
  .sheet-toolbar { align-items: stretch; flex-direction: column; gap: 8px; padding-top: 9px; padding-bottom: 9px; }
  .reporting-toolbar-actions { width: 100%; flex-wrap: wrap; }
  .payroll-period-control { width: 100%; }
  .payroll-period-control select { width: 100%; }
  .control-toolbar > div:first-child {
    flex: 0 0 auto;
    width: 100%;
    align-self: stretch;
  }
  .control-filter-bar {
    width: 100%;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-start;
  }
  .alerts-toolbar-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .novelty-form-grid,
  .novelty-demand-layout,
  .novelty-record-grid { grid-template-columns: 1fr; }
  .new-store-form-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .new-store-form-fields label.wide { grid-column: 1 / -1; }
  .new-store-result-tables { grid-template-columns: 1fr; }
  .table-controls { width: 100%; flex-wrap: wrap; }
  .table-controls input { flex: 1; width: auto; min-width: 180px; }
  .table-controls span { margin-left: auto; }
  .store-header { gap: 10px; }
  .store-filter-bar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .store-filter-bar .control-filter:has(#malla-region) select,
  .store-filter-bar .control-filter:has(#malla-zone) select,
  .store-combobox input { width: 100%; }
  .store-match-count { display: none; }
  .figure-meta-row { align-items: flex-start; flex-wrap: wrap; }
  .figure-legend { flex-basis: 100%; }
  .coverage-filter-group, .schedule-filter-group { width: 100%; margin-left: 0; justify-content: flex-start; flex-wrap: wrap; }
  .requirement-implementation-grid { grid-template-columns: 1fr; }
  .requirement-implementation-heading { align-items: stretch; flex-direction: column; }
  .requirement-implementation-heading > span { align-self: flex-start; }
  .requirement-detail-drawer { width: calc(100vw - 16px); }
  .requirement-detail-context.owner { margin-left: 0; }
  .requirement-keyword-list > div,
  .requirement-person-keyword { grid-template-columns: 120px minmax(0, 1fr) auto; }
  .alerts-table-scroll { overflow-x: hidden; }
  .zonal-vacation-sheet .table-scroll {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }
  .zonal-vacation-table { width: max-content; min-width: 920px; }
  .alerts-table { display: block; min-width: 0; table-layout: auto; }
  .alerts-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    margin: -1px;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .alerts-table tbody { display: block; }
  .alerts-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-bottom: 1px solid var(--line-strong);
  }
  .alerts-table tbody tr:last-child { border-bottom: 0; }
  .alerts-table tbody td {
    display: grid;
    height: auto;
    min-height: 58px;
    grid-template-columns: minmax(142px, .8fr) minmax(0, 1.2fr);
    align-content: center;
    align-items: center;
    gap: 8px;
    width: auto !important;
    padding: 9px 11px;
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    overflow: visible;
    line-height: 1.35;
    text-align: left !important;
    text-overflow: clip;
    white-space: normal;
  }
  .alerts-table tbody td:nth-child(even) { border-right: 0; }
  .alerts-table tbody td:nth-last-child(-n + 2) { border-bottom: 0; }
  .alerts-table tbody td:first-child,
  .operational-alerts-table tbody td:nth-child(9) {
    grid-column: 1 / -1;
    border-right: 0;
  }
  .alerts-table tbody td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: var(--text-2xs);
    font-weight: 650;
    line-height: 1.35;
    overflow-wrap: anywhere;
    white-space: normal;
  }
  .alerts-table tbody td:first-child::before { align-self: start; }
  .alerts-table tbody td:first-child > strong,
  .alerts-table tbody td:first-child > small { grid-column: 2; }
  .alerts-table tbody td:first-child > small { margin-top: -3px; }
}

@media (max-width: 760px) {
  .topbar {
    height: auto;
    min-height: 54px;
    flex-wrap: wrap;
    padding: 0 8px;
    overflow: visible;
  }
  .brand {
    order: 1;
    height: 48px;
    margin-right: 0;
  }
  .topbar-context {
    order: 2;
    height: 48px;
    margin-left: auto;
    border-left: 0;
  }
  .primary-nav {
    order: 3;
    width: 100%;
    height: 42px;
    flex: 1 0 100%;
    overflow-x: auto;
    overflow-y: hidden;
    border-top: 1px solid var(--line);
    scrollbar-width: none;
  }
  .primary-nav::-webkit-scrollbar { display: none; }
  .primary-nav button {
    flex: 1 0 auto;
    min-width: max-content;
    white-space: nowrap;
  }
  .assistant-button { min-height: 48px; }
  .central-user-context > summary { min-width: 0; padding: 0 8px; }
  .central-logout { min-height: 48px; }
  .planning-service-status {
    width: 48px;
    padding: 0 8px;
    font-size: 0;
  }
  .planning-service-status::after {
    content: attr(data-short-label);
    font-size: .625rem;
  }
  .data-button { padding: 0 9px; }
  .nav-group-menu {
    position: fixed;
    top: 95px;
    right: 8px;
    left: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .primary-nav .nav-group-menu button { text-align: center; }
}

@media (max-width: 560px) {
  .topbar {
    padding: 0 6px;
    overflow: visible;
  }
  .brand {
    margin-right: 0;
    padding-right: 6px;
  }
  .brand img { width: 28px; height: 28px; }
  .primary-nav { min-width: 0; flex: 1 0 100%; }
  .primary-nav button {
    flex: 0 0 auto;
    min-width: max-content;
    padding: 0 10px;
    font-size: .6875rem;
    white-space: nowrap;
  }
  .nav-group > summary { padding: 0 10px; font-size: .6875rem; white-space: nowrap; }
  .primary-nav button::after { right: 5px; left: 5px; }
  .topbar-context { flex: 0 0 auto; margin-left: auto; }
  .assistant-button {
    width: 34px;
    padding: 0;
    font-size: 0;
  }
  .assistant-button::before { content: "✦"; font-size: .75rem; }
  .assistant-drawer { right: 0; left: 0; width: auto; }
  .assistant-drawer > header { padding: 0 10px; }
  .assistant-drawer header small { display: none; }
  .assistant-reset { font-size: .65625rem; }
  .chat-transcript { padding: 14px; }
  .chat-welcome { margin-top: 8px; }
  .prompt-list { grid-template-columns: 1fr; }
  .prompt-list button { min-height: 54px; }
  .manual-change-fields { grid-template-columns: 1fr; }
  .manual-change-fields > .wide,
  .manual-change-fields > .manual-event-exchange,
  .manual-change-fields > .manual-onboarding-fields { grid-column: auto; }
  .message.user p { max-width: 92%; }
  .message.assistant { padding: 11px; }
  .chat-evidence-data > div { grid-template-columns: 1fr; gap: 2px; }
  .requirement-detail-drawer > header { min-height: 126px; padding-right: 14px; padding-left: 14px; }
  .requirement-detail-section { padding-right: 17px; padding-left: 17px; }
  .requirement-detail-secondary { padding-right: 17px; padding-left: 17px; }
  .requirement-detail-context { min-width: 104px; }
  .requirement-keyword-list > div,
  .requirement-person-keyword {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 10px 0;
  }
  .requirement-person-keyword .fictional-person-label { justify-self: start; }
  .requirement-detail-table col.requirement-detail-label-column { width: 128px; }
  .requirement-detail-table tbody th,
  .requirement-detail-table tbody td { padding: 9px 10px; }
  .requirement-alternatives { min-width: 540px; }
  .requirement-impact-grid { grid-template-columns: 1fr; }
  .requirement-decision-heading { align-items: flex-start; flex-direction: column; }
  .requirement-change-row {
    grid-template-columns: 58px minmax(0, 1fr) 14px minmax(0, 1fr);
  }
  .requirement-change-row > small { grid-column: 2 / -1; }
  .requirement-detail-footer { align-items: stretch; flex-direction: column; }
  .requirement-detail-footer > div { justify-content: flex-end; flex-wrap: wrap; }
  .alerts-table tbody tr { grid-template-columns: 1fr; }
  .alerts-toolbar-actions { grid-template-columns: 1fr; }
  .novelty-tabs { overflow-x: auto; padding: 0 7px; }
  .novelty-tabs button { flex: 0 0 auto; padding: 0 10px; }
  .novelty-form-grid,
  .novelty-demand-layout { padding: 9px; }
  .novelty-record-grid { padding: 0 9px 9px; }
  .novelty-demand-records { margin: 0 9px 9px; }
  .novelty-form-fields { grid-template-columns: 1fr; }
  .novelty-form-fields label.wide { grid-column: auto; }
  .new-store-summary { grid-template-columns: 1fr; }
  .new-store-summary > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .new-store-summary > div:last-child { border-bottom: 0; }
  .new-store-builder,
  .new-store-results { padding: 9px; }
  #new-store-map { height: 340px; }
  .new-store-map-card > header,
  .new-store-scenario-form > header,
  .new-store-result-section > header { align-items: stretch; flex-direction: column; }
  .new-store-map-legend { flex-wrap: wrap; white-space: normal; }
  .new-store-form-fields { grid-template-columns: 1fr; }
  .new-store-form-fields label.wide { grid-column: auto; }
  .new-store-summary.four { grid-template-columns: 1fr; }
  .new-store-summary.four > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .new-store-summary.four > div:last-child { border-bottom: 0; }
  .store-filter-bar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-search-filter { grid-column: 1 / -1; }
  .store-window-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .store-window-summary > div { border-bottom: 1px solid var(--line); }
  .store-window-summary > div:nth-child(2n) { border-right: 0; }
  .store-window-summary > div:last-child {
    grid-column: 1 / -1;
    border-right: 0;
    border-bottom: 0;
  }
  .store-window-empty,
  .store-window-governance { align-items: stretch; flex-direction: column; }
  .alerts-table tbody td {
    grid-column: 1 / -1;
    border-right: 0;
  }
  .alerts-table tbody td:nth-last-child(2) { border-bottom: 1px solid var(--line); }
}
