/* CUBE: block — native <dialog> styled as a modal sheet: header (optional
   danger glyph, title, sub, close), scrolling body (fields / key-value rows /
   note), and a right-aligned action row. Driven by /static/js/ui.js. */

dialog.dialog {
  padding: 0;
  border: 0;
  border-radius: var(--radius-l);
  background: var(--color-surface);
  color: var(--color-fg);
  box-shadow: var(--shadow-lg);
  max-inline-size: min(28.75rem, 92vw);
  inline-size: 100%;
  overflow: hidden;
}
dialog.dialog[open] { animation: sheetin 160ms ease-out; }
dialog.dialog::backdrop { background: var(--color-backdrop); }

.dialog__header {
  display: flex;
  align-items: flex-start;
  gap: var(--space-s);
  padding: var(--space-m) var(--space-l) var(--space-s);
  border-block-end: 1px solid var(--color-border-subtle);
}
.dialog__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  inline-size: var(--icon-btn);
  block-size: var(--icon-btn);
  border-radius: var(--radius-s);
  background: var(--color-danger-soft);
  color: var(--color-danger);
}
.dialog__titles { flex: 1; min-inline-size: 0; }
.dialog__title { font-size: var(--fs-lg); font-weight: 600; letter-spacing: -0.01em; }
.dialog__sub { font-size: var(--fs-xs); color: var(--color-muted); margin-block-start: var(--space-3xs); text-wrap: pretty; }
.dialog__close {
  flex: 0 0 auto;
  inline-size: var(--icon-btn-sm);
  block-size: var(--icon-btn-sm);
  min-block-size: var(--icon-btn-sm);
  padding: 0;
  background: transparent;
  color: var(--color-muted);
  border: 0;
  border-radius: var(--radius-s);
  box-shadow: none;
}
.dialog__close:hover:not(:disabled) { background: var(--color-border-subtle); color: var(--color-fg); }

.dialog__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-m);
  padding: var(--space-m) var(--space-l);
  max-block-size: 21.25rem;
  overflow: auto;
}

.dialog__field { display: flex; flex-direction: column; gap: var(--space-2xs); }
.dialog__field-label { font-size: var(--fs-xs); font-weight: 500; color: var(--color-fg); }
.dialog__field-hint { font-size: var(--fs-xs); color: var(--color-muted); }
.dialog__field > input,
.dialog__field > select { inline-size: 100%; block-size: var(--control-h-lg); }

.dialog__kv {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-m);
  padding-block: var(--space-xs);
  border-block-end: 1px solid var(--color-border-subtle);
  font-size: var(--fs-sm);
}
.dialog__kv-key { color: var(--color-muted); }
.dialog__kv-val { font-weight: 500; text-align: end; }

.dialog__note {
  padding: var(--space-s) var(--space-m);
  background: var(--color-surface-muted);
  border-radius: var(--radius-m);
  font-size: var(--fs-xs);
  color: var(--color-muted);
  text-wrap: pretty;
}

.dialog__actions {
  display: flex;
  justify-content: flex-end;
  gap: var(--space-xs);
  padding: var(--space-s) var(--space-l) var(--space-m);
  border-block-start: 1px solid var(--color-border-subtle);
}

/* Cash tender: total / paid / change rows in the cash dialog. */
.cash-row { display: flex; justify-content: space-between; align-items: baseline; }
.cash-amount { font-variant-numeric: tabular-nums; font-weight: 600; }
.cash-row--change {
  padding-block-start: var(--space-s);
  border-block-start: 2px solid var(--color-border);
  font-size: var(--fs-xl);
}
