:root {
  --space-1: 6px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --topbar-offset: 0px;
  --sticky-stack-offset: 0px;
  --fixed-stack-offset: 0px;
  --sticky-stack-gap: 12px;
}

html {
  scroll-padding-top: calc(var(--sticky-stack-offset) + var(--sticky-stack-gap));
}

body {
  padding-top: var(--fixed-stack-offset);
}

.main-content :where([id]) {
  scroll-margin-top: calc(var(--sticky-stack-offset) + var(--sticky-stack-gap));
}

/* Shared rhythm. Contextual classes carry spacing; .actions remains layout-only. */
.actions {
  gap: var(--space-3);
}

.actions > form {
  margin: 0;
}

.btn {
  min-height: 42px;
  padding: var(--space-2) var(--space-4);
  line-height: 1.2;
}

.btn.compact {
  min-height: 34px;
  padding: var(--space-1) var(--space-3);
  font-size: 13px;
}

.btn.danger {
  border-color: var(--danger);
  background: var(--danger);
  color: #fff;
}

.btn.danger:hover {
  border-color: #963535;
  background: #963535;
}

.btn.danger-outline {
  border-color: #dc9b91;
  background: #fff;
  color: var(--danger);
}

.btn.danger-outline:hover {
  border-color: var(--danger);
  background: var(--danger);
  color: #fff;
}

.table-wrap {
  border-radius: 14px;
}

.table-wrap tbody tr:last-child > td {
  border-bottom: 0;
}

.table-wrap th,
.table-wrap td {
  padding: var(--space-4);
}

.table-actions,
.section-actions,
.section-table,
.table-pagination,
.bulk-table {
  margin-top: var(--space-4);
}

.table-filter-actions {
  margin: var(--space-4) 0;
}

.form-actions {
  margin-top: var(--space-5);
}

.section-hint {
  margin: var(--space-4) 0 0;
}

.section-hint + .form-actions {
  margin-top: var(--space-4);
}

.section-heading {
  margin-top: var(--space-4);
}

.print-layout {
  margin-top: var(--space-5);
}

.pagination.table-pagination {
  margin: var(--space-4) 0 0;
}

.pagination.catalog-pagination,
.pagination.search-pagination {
  margin: var(--space-4) 0 0;
}

/* Existing semantic toolbars get the same table separation across registries. */
.bulk-toolbar + .table-wrap,
.marking-bulk + .table-wrap {
  margin-top: var(--space-4);
}

.book-stat-grid + .table-wrap,
.book-stat-grid + .table-shell,
.book-inline-form + .table-wrap,
.book-inline-form + .table-shell {
  margin-top: var(--space-4);
}

.form-card > .form-actions:last-child {
  margin-bottom: 0;
}

.section-stack {
  display: grid;
  gap: var(--space-4);
}

@media (max-width: 850px) {
  .actions {
    flex-wrap: wrap;
  }

  .page-head > .actions {
    width: 100%;
  }

  .table-actions,
  .form-actions,
  .section-actions {
    align-items: stretch;
  }
}

/* Registry pages use the viewport; forms and detail pages keep the readable shell. */
.topbar { padding-inline: 24px; }
.shell.shell-wide { max-width: none; }
.sync-freshness { display:flex;align-items:center;gap:8px;margin:-10px 0 20px;color:var(--muted);font-size:13px; }
.sync-freshness strong { color:var(--ink); }
.sync-freshness.is-stale { color:#8a6200; }
/* Wide content scrolls inside its owner instead of widening the document. */
html, body { max-width: 100%; }
.topbar,.topbar-navigation,.primary-nav,.section-nav-shell,.section-nav,
.notification-banner,.book-period-bar,.book-period-bar-inner { min-width: 0; max-width: 100%; }
.shell,.main-content,.panel,.page-head,.detail-grid,.form-grid,.metrics,.cards { min-width: 0; }
.table-wrap,.table-shell,.book-history-table-wrap,.book-shift-scroll {
  max-width: 100%; min-width: 0; overflow-x: auto;
  overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch;
}
.is-drag-scrollable { cursor:grab;touch-action:pan-x pan-y; }
.is-drag-scrollable.is-dragging { cursor:grabbing;user-select:none; }
.mono,pre,dd,.notice,.panel p,.wrap-anywhere { overflow-wrap: anywhere; }
.money,[data-money],.money-value,.price-value,.book-amount,.settlement-amount,.reserve-debt-card__amount,.calculated-price strong,.table-date,.table-time,.table-actions,
td:has(> .money),td:has(> time) { white-space: nowrap; overflow-wrap: normal; }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:18px; color:var(--muted); font-size:13px; }
.breadcrumbs a { color:var(--brand); text-decoration:none; }
.danger-text { color:var(--danger); }
.s-completed,.s-succeeded { background:#dff3e9;color:#176044 }
.s-partial,.s-failed { background:#fde7e2;color:#9d382c }
.s-processing,.s-submitting { background:#e2effa;color:#285c87 }
.s-moderation { background:#fff0cd;color:#84600f }
dialog { max-width: calc(100vw - 28px); max-height: calc(100dvh - 28px); overflow: auto; }
:where(a,button,input,select,textarea,summary):focus-visible {
  outline: 3px solid rgba(23,107,91,.28); outline-offset: 2px;
}
@media (max-width: 850px) {
  input,select,textarea { min-width: 0; max-width: 100%; font-size: 16px; }
  .actions>.btn,.actions>form,.actions>form>.btn { max-width: 100%; }
  .table-wrap th,.table-wrap td,.table-shell th,.table-shell td { padding: var(--space-3); }
}
@media (max-width: 520px) {
  .topbar { padding-inline: 14px; }
  .panel { padding: var(--space-4); }
  .page-head h1 { font-size: 32px; }
  .btn:not(.compact) { min-height: 44px; }
  .pagination { flex-wrap: wrap; }
}
