@scope (.mesa-ui) {
.mesa-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--mesa-target-default);
  padding: var(--mesa-space-2) var(--mesa-space-4);
  border: 1px solid transparent;
  border-radius: var(--mesa-radius-sm);
  background: transparent;
  color: var(--mesa-ink);
  font: var(--mesa-font-weight-semibold) var(--mesa-type-label-size) / var(--mesa-type-label-line) var(--mesa-font-ui);
  text-decoration: none;
  cursor: pointer;
  transition: color var(--mesa-motion-fast),
    background-color var(--mesa-motion-fast),
    border-color var(--mesa-motion-fast),
    opacity var(--mesa-motion-fast),
    transform var(--mesa-motion-fast);
}

.mesa-button:where([data-variant="primary"]) {
  background: var(--mesa-brand);
  color: var(--mesa-surface-elevated);
}

.mesa-button:where([data-variant="primary"]):hover,
.mesa-button:where([data-variant="primary"]):active {
  background: var(--mesa-brand-hover);
}

.mesa-button:where([data-variant="secondary"]) {
  border-color: var(--mesa-border);
  background: var(--mesa-surface);
  color: var(--mesa-espresso);
}

.mesa-button:where([data-variant="secondary"]):hover,
.mesa-button:where([data-variant="secondary"]):active {
  background: var(--mesa-neutral-soft);
}

.mesa-button:where([data-variant="ghost"]) {
  background: transparent;
  color: var(--mesa-ink);
}

.mesa-button:where([data-variant="ghost"]):hover,
.mesa-button:where([data-variant="ghost"]):active {
  background: var(--mesa-neutral-soft);
}

.mesa-button:where([data-variant="danger"]) {
  background: var(--mesa-danger);
  color: var(--mesa-surface-elevated);
}

.mesa-button:where([data-variant="danger"]):hover,
.mesa-button:where([data-variant="danger"]):active {
  background: color-mix(in srgb, var(--mesa-danger), var(--mesa-ink) 20%);
}

.mesa-button:active {
  transform: translateY(1px);
}

.mesa-button:where([data-size="icon"]) {
  width: var(--mesa-target-default);
  min-width: var(--mesa-target-default);
  height: var(--mesa-target-default);
  padding: 0;
}

.mesa-button:where([data-size="compact"]) {
  min-height: var(--mesa-target-compact);
  padding-block: var(--mesa-space-1);
}

.mesa-button:where([data-size="touch"]) {
  min-height: var(--mesa-target-touch);
}

.mesa-button:where([aria-busy="true"]) {
  padding-inline-end: var(--mesa-space-8);
  cursor: wait;
}

.mesa-button:where([aria-busy="true"])::after {
  position: absolute;
  inset-inline-end: var(--mesa-space-3);
  width: var(--mesa-space-4);
  height: var(--mesa-space-4);
  border: 2px solid currentColor;
  border-inline-end-color: transparent;
  border-radius: var(--mesa-radius-pill);
  content: "";
  animation: mesa-spin var(--mesa-motion-overlay) linear infinite;
}

.mesa-button:disabled,
.mesa-button:where([aria-disabled="true"]) {
  border-color: var(--mesa-disabled-soft);
  background: var(--mesa-disabled-soft);
  color: var(--mesa-disabled-ink);
  cursor: not-allowed;
  transform: none;
}

.mesa-field {
  display: grid;
  gap: var(--mesa-space-1);
  color: var(--mesa-ink);
}

.mesa-field-label {
  font: var(--mesa-font-weight-semibold) var(--mesa-type-label-size) / var(--mesa-type-label-line) var(--mesa-font-ui);
}

.mesa-field-help,
.mesa-field-error {
  font: var(--mesa-font-weight-regular) var(--mesa-type-small-size) / var(--mesa-type-small-line) var(--mesa-font-ui);
}

.mesa-field-help { color: var(--mesa-ink-muted); }
.mesa-field-error { color: var(--mesa-danger-ink); }

.mesa-control {
  width: 100%;
  min-height: var(--mesa-target-default);
  padding: var(--mesa-space-2) var(--mesa-space-3);
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-sm);
  background: var(--mesa-surface);
  color: var(--mesa-ink);
  font: var(--mesa-font-weight-regular) var(--mesa-type-body-size) / var(--mesa-type-body-line) var(--mesa-font-ui);
}

.mesa-control:where([data-size="touch"]) { min-height: var(--mesa-target-touch); }
.mesa-control:focus-visible { border-color: var(--mesa-focus); }
.mesa-control:read-only { background: var(--mesa-neutral-soft); }
.mesa-control:disabled {
  background: var(--mesa-disabled-soft);
  color: var(--mesa-disabled-ink);
  cursor: not-allowed;
}

textarea.mesa-control {
  min-height: calc(var(--mesa-target-touch) * 2);
  resize: vertical;
}

.mesa-choice {
  display: inline-flex;
  align-items: center;
  min-height: var(--mesa-target-default);
  gap: var(--mesa-space-2);
  color: var(--mesa-ink);
  cursor: pointer;
}

.mesa-choice > :where(input[type="checkbox"], input[type="radio"]) {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--mesa-brand);
}

.mesa-choice:has(> :disabled) {
  color: var(--mesa-disabled-ink);
  cursor: not-allowed;
}

.mesa-money-control {
  display: flex;
  align-items: stretch;
}

.mesa-money-control > span {
  display: inline-flex;
  align-items: center;
  min-height: var(--mesa-target-touch);
  padding-inline: var(--mesa-space-3);
  border: 1px solid var(--mesa-border);
  border-inline-end: 0;
  border-radius: var(--mesa-radius-sm) 0 0 var(--mesa-radius-sm);
  background: var(--mesa-neutral-soft);
  color: var(--mesa-ink-muted);
  font: var(--mesa-font-weight-bold) var(--mesa-type-label-size) / var(--mesa-type-label-line) var(--mesa-font-ui);
}

.mesa-money-control > .mesa-control {
  min-width: 0;
  min-height: var(--mesa-target-touch);
  border-radius: 0 var(--mesa-radius-sm) var(--mesa-radius-sm) 0;
  font-variant-numeric: tabular-nums;
}

.mesa-choice-group {
  display: grid;
  min-width: 0;
  gap: var(--mesa-space-2);
  margin: 0;
  padding: 0;
  border: 0;
}

.mesa-choice-group > legend {
  margin-block-end: var(--mesa-space-1);
  color: var(--mesa-ink);
  font: var(--mesa-font-weight-semibold) var(--mesa-type-label-size) / var(--mesa-type-label-line) var(--mesa-font-ui);
}

.mesa-choice-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--mesa-space-2);
}

.mesa-choice-card {
  min-height: var(--mesa-target-touch);
  padding: var(--mesa-space-3);
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-sm);
  background: var(--mesa-surface);
  font-weight: var(--mesa-font-weight-semibold);
}

.mesa-choice-card:has(> input:checked) {
  border-color: var(--mesa-brand);
  background: var(--mesa-neutral-soft);
  color: var(--mesa-espresso);
}

.mesa-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--mesa-space-2);
  padding: var(--mesa-space-3) var(--mesa-space-4);
  border: 1px solid var(--mesa-tone-ink);
  border-radius: var(--mesa-radius-sm);
  background: var(--mesa-tone-soft);
  color: var(--mesa-tone-ink);
}

.mesa-alert-icon { flex: 0 0 auto; }
.mesa-status-region:empty { display: none; }

.mesa-badge,
.mesa-chip {
  display: inline-flex;
  align-items: center;
  min-height: var(--mesa-target-compact);
  padding: var(--mesa-space-1) var(--mesa-space-3);
  border: 1px solid var(--mesa-tone-ink);
  border-radius: var(--mesa-radius-pill);
  background: var(--mesa-tone-soft);
  color: var(--mesa-tone-ink);
  font: var(--mesa-font-weight-semibold) var(--mesa-type-small-size) / var(--mesa-type-small-line) var(--mesa-font-ui);
}

.mesa-badge { min-height: auto; }

.mesa-chip {
  cursor: pointer;
  transition: color var(--mesa-motion-fast),
    background-color var(--mesa-motion-fast),
    border-color var(--mesa-motion-fast),
    opacity var(--mesa-motion-fast),
    transform var(--mesa-motion-fast);
}

.mesa-chip:where([data-state]) { user-select: none; }

.mesa-chip:where([data-state="active"], [aria-pressed="true"]) {
  background: var(--mesa-tone-ink);
  color: var(--mesa-tone-soft);
}

:where(.mesa-alert, .mesa-badge, .mesa-chip):where([data-tone="success"]) {
  --mesa-tone-ink: var(--mesa-success-ink);
  --mesa-tone-soft: var(--mesa-success-soft);
}

:where(.mesa-alert, .mesa-badge, .mesa-chip):where([data-tone="warning"]) {
  --mesa-tone-ink: var(--mesa-warning-ink);
  --mesa-tone-soft: var(--mesa-warning-soft);
}

:where(.mesa-alert, .mesa-badge, .mesa-chip):where([data-tone="danger"]) {
  --mesa-tone-ink: var(--mesa-danger-ink);
  --mesa-tone-soft: var(--mesa-danger-soft);
}

:where(.mesa-alert, .mesa-badge, .mesa-chip):where([data-tone="info"]) {
  --mesa-tone-ink: var(--mesa-info-ink);
  --mesa-tone-soft: var(--mesa-info-soft);
}

:where(.mesa-alert, .mesa-badge, .mesa-chip):where([data-tone="neutral"]) {
  --mesa-tone-ink: var(--mesa-neutral-ink);
  --mesa-tone-soft: var(--mesa-neutral-soft);
}

:where(.mesa-alert, .mesa-badge, .mesa-chip):where([data-tone="disabled"]) {
  --mesa-tone-ink: var(--mesa-disabled-ink);
  --mesa-tone-soft: var(--mesa-disabled-soft);
}

.mesa-panel {
  padding: var(--mesa-space-4);
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-md);
  background: var(--mesa-surface);
  color: var(--mesa-ink);
}

.mesa-panel:where([data-surface="elevated"]) {
  background: var(--mesa-surface-elevated);
  box-shadow: var(--mesa-shadow-2);
}

.mesa-financial-summary {
  display: grid;
  margin: 0;
  border-block: 1px solid var(--mesa-border);
}

.mesa-financial-summary > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--mesa-space-4);
  padding-block: var(--mesa-space-3);
  border-block-end: 1px solid var(--mesa-border);
}

.mesa-financial-summary > div:last-child { border-block-end: 0; }
.mesa-financial-summary :where(dt, dd) { margin: 0; }
.mesa-financial-summary dt { color: var(--mesa-ink-muted); }
.mesa-financial-summary dd {
  color: var(--mesa-espresso);
  font-weight: var(--mesa-font-weight-bold);
  font-variant-numeric: tabular-nums;
  text-align: end;
}

.mesa-financial-summary > [data-emphasis="strong"] dd {
  font-size: var(--mesa-type-h3-size);
}

.mesa-confirm-dialog {
  width: min(calc(100% - var(--mesa-space-8)), 520px);
  max-height: calc(100% - var(--mesa-space-8));
  padding: 0;
  overflow: auto;
  border: 0;
  border-radius: var(--mesa-radius-md);
  background: transparent;
  color: var(--mesa-ink);
}

.mesa-confirm-dialog::backdrop {
  background: color-mix(in srgb, var(--mesa-ink), transparent 35%);
}

.mesa-confirm-dialog__surface {
  display: grid;
  gap: var(--mesa-space-6);
  padding: var(--mesa-space-6);
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-md);
  background: var(--mesa-surface-elevated);
  box-shadow: var(--mesa-shadow-2);
}

.mesa-confirm-dialog__surface :where(h2, p) { margin: 0; }

.mesa-confirm-dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--mesa-space-2);
}

.mesa-page-heading {
  display: grid;
  gap: var(--mesa-space-2);
}

.mesa-page-heading :where(h1, p),
.mesa-section-heading :where(h2, p),
.mesa-next-action :where(h2, p) { margin: 0; }

.mesa-page-heading h1 {
  color: var(--mesa-espresso);
  font: var(--mesa-font-weight-bold) var(--mesa-type-h1-size) / var(--mesa-type-h1-line) var(--mesa-font-brand);
}

.mesa-page-heading > p:last-child,
.mesa-supporting-copy { color: var(--mesa-ink-muted); }

.mesa-page-eyebrow {
  color: var(--mesa-brand-hover);
  font: var(--mesa-font-weight-bold) var(--mesa-type-caption-size) / var(--mesa-type-caption-line) var(--mesa-font-ui);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.mesa-summary-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  overflow: hidden;
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-md);
  background: var(--mesa-surface);
}

.mesa-summary-item {
  display: grid;
  min-width: 0;
  gap: var(--mesa-space-1);
  padding: var(--mesa-space-4);
  border-inline-end: 1px solid var(--mesa-border);
}

.mesa-summary-item:last-child { border-inline-end: 0; }
.mesa-summary-item > span,
.mesa-summary-item > small { color: var(--mesa-ink-muted); }
.mesa-summary-item > span {
  font: var(--mesa-font-weight-semibold) var(--mesa-type-caption-size) / var(--mesa-type-caption-line) var(--mesa-font-ui);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.mesa-summary-item > strong { font-size: var(--mesa-type-body-size); }

.mesa-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--mesa-space-4);
  margin-block-end: var(--mesa-space-4);
}

.mesa-section-heading > div { display: grid; gap: var(--mesa-space-1); }

.mesa-action-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--mesa-space-2);
}

.mesa-action-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--mesa-target-touch);
  gap: var(--mesa-space-3);
  padding: var(--mesa-space-3) var(--mesa-space-4);
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-sm);
  background: var(--mesa-surface);
  color: var(--mesa-espresso);
  font-weight: var(--mesa-font-weight-semibold);
  text-decoration: none;
  transition: background-color var(--mesa-motion-fast), border-color var(--mesa-motion-fast);
}

.mesa-action-item:hover {
  border-color: var(--mesa-brand);
  background: var(--mesa-neutral-soft);
}

.mesa-dashboard {
  display: grid;
  width: min(100%, 1120px);
  gap: var(--mesa-space-8);
}

.mesa-content-section { min-width: 0; }

.mesa-next-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--mesa-space-6);
  border-inline-start: var(--mesa-space-1) solid var(--mesa-brand);
}

.mesa-next-action > div { display: grid; gap: var(--mesa-space-2); }
.mesa-next-action .mesa-button { flex: 0 0 auto; }

@media (max-width: 767px) {
  .mesa-dashboard { gap: var(--mesa-space-6); }
  .mesa-summary-strip { grid-template-columns: 1fr 1fr; }
  .mesa-summary-item:nth-of-type(even) { border-inline-end: 0; }
  .mesa-summary-item:nth-of-type(n + 3) { border-block-start: 1px solid var(--mesa-border); }
  .mesa-next-action { align-items: stretch; flex-direction: column; }
  .mesa-next-action .mesa-button { width: 100%; }
}

@media (max-width: 479px) {
  .mesa-summary-strip { grid-template-columns: 1fr; }
  .mesa-summary-item { border-inline-end: 0; }
  .mesa-summary-item:nth-of-type(n + 2) { border-block-start: 1px solid var(--mesa-border); }
  .mesa-section-heading { align-items: flex-start; flex-direction: column; }
  .mesa-action-list { grid-template-columns: 1fr; }
  .mesa-choice-options { grid-template-columns: 1fr; }
  .mesa-confirm-dialog__actions { align-items: stretch; flex-direction: column-reverse; }
  .mesa-confirm-dialog__actions .mesa-button { width: 100%; }
}

.mesa-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--mesa-border);
  border-radius: var(--mesa-radius-md);
}

.mesa-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--mesa-surface);
  color: var(--mesa-ink);
}

.mesa-table :where(th, td) {
  height: var(--mesa-target-touch);
  padding: var(--mesa-space-2) var(--mesa-space-3);
  border-block-end: 1px solid var(--mesa-border);
  text-align: start;
}

.mesa-table:where([data-density="compact"]) :where(th, td) { height: 40px; }
.mesa-table :where(th, td):where([data-align="numeric"]) {
  text-align: end;
  font-variant-numeric: tabular-nums;
}

.mesa-empty-state {
  display: grid;
  justify-items: center;
  gap: var(--mesa-space-3);
  padding: var(--mesa-space-8);
  border: 1px dashed var(--mesa-border);
  border-radius: var(--mesa-radius-md);
  background: var(--mesa-surface);
  color: var(--mesa-ink);
  text-align: center;
}

.mesa-empty-state-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--mesa-space-2);
}

.mesa-login-panel {
  position: relative;
  overflow: hidden;
  width: min(100%, 440px);
  padding: var(--mesa-space-8);
}

.mesa-login-panel::before {
  position: absolute;
  inset: 0 0 auto;
  height: var(--mesa-space-1);
  background: var(--mesa-brand);
  content: "";
}

.mesa-login-heading {
  margin-block-end: var(--mesa-space-6);
  text-align: center;
}

.mesa-login-heading h1 {
  margin: var(--mesa-space-4) 0 var(--mesa-space-2);
  color: var(--mesa-espresso);
  font: var(--mesa-font-weight-bold) var(--mesa-type-h1-size) / var(--mesa-type-h1-line) var(--mesa-font-brand);
}

.mesa-login-heading p,
.mesa-login-support {
  color: var(--mesa-ink-muted);
  font: var(--mesa-font-weight-regular) var(--mesa-type-small-size) / var(--mesa-type-small-line) var(--mesa-font-ui);
}

.mesa-login-heading p { margin: 0; }

.mesa-login-brand {
  display: inline-flex;
  align-items: center;
  gap: var(--mesa-space-2);
}

.mesa-login-brand-mark {
  display: inline-grid;
  width: var(--mesa-target-default);
  height: var(--mesa-target-default);
  flex: 0 0 auto;
  place-items: center;
  border-radius: var(--mesa-radius-sm);
  background: var(--mesa-brand);
  color: var(--mesa-surface-elevated);
  font: var(--mesa-font-weight-extrabold) var(--mesa-type-h3-size) / 1 var(--mesa-font-brand);
}

.mesa-login-brand-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  color: var(--mesa-espresso);
  line-height: 1;
}

.mesa-login-brand-copy strong {
  font-family: var(--mesa-font-brand);
  font-size: var(--mesa-type-body-size);
  letter-spacing: 0.08em;
}

.mesa-login-brand-copy small {
  margin-block-start: var(--mesa-space-1);
  color: var(--mesa-ink-muted);
  font-size: var(--mesa-type-caption-size);
  letter-spacing: 0.03em;
}

.mesa-login-form {
  display: grid;
  gap: var(--mesa-space-4);
}

.mesa-login-form .validation-summary {
  margin: 0;
}

.mesa-login-password-control { position: relative; }
.mesa-login-password-control .mesa-control { padding-inline-end: 96px; }

.mesa-login-password-toggle {
  position: absolute;
  inset: 2px 2px 2px auto;
  min-width: 88px;
  min-height: 44px;
  border-inline-start: 1px solid var(--mesa-border);
  border-radius: 0 var(--mesa-radius-sm) var(--mesa-radius-sm) 0;
  color: var(--mesa-brand-hover);
}

.mesa-login-submit { width: 100%; }

.mesa-login-support {
  margin: var(--mesa-space-6) 0 0;
  text-align: center;
}

@media (max-width: 479px) {
  .mesa-login-panel {
    padding: var(--mesa-space-6) var(--mesa-space-4);
    box-shadow: var(--mesa-shadow-1);
  }
}

.mesa-loading {
  display: inline-flex;
  align-items: center;
  gap: var(--mesa-space-2);
  color: var(--mesa-ink-muted);
}

.mesa-loading::before {
  width: var(--mesa-space-4);
  height: var(--mesa-space-4);
  border: 2px solid var(--mesa-border);
  border-inline-end-color: var(--mesa-brand);
  border-radius: var(--mesa-radius-pill);
  content: "";
  animation: mesa-spin var(--mesa-motion-overlay) linear infinite;
}
}

@keyframes mesa-spin {
  to { transform: rotate(1turn); }
}

@media (prefers-reduced-motion: reduce) {
  @scope (.mesa-ui) {
  .mesa-button,
  .mesa-chip,
  .mesa-action-item {
    transition-duration: 0s;
  }

  .mesa-button:where([aria-busy="true"])::after,
  .mesa-loading::before {
    animation: none;
  }
  }
}
