/* Approved dialog shell. Explicit overrides bridge the legacy page-specific rules. */
body dialog.ui-dialog {
  box-sizing: border-box;
  padding: 24px !important;
  max-width: calc(100vw - 48px);
  max-height: calc(100dvh - 48px);
  border-radius: 12px;
}
body dialog.ui-dialog .dialog-heading {
  display: flex !important;
  align-items: center !important;
  gap: 16px;
  margin: 0 0 20px !important;
  padding: 0 !important;
  border: 0 !important;
}
body dialog.ui-dialog .dialog-heading > div {
  min-width: 0;
}
body dialog.ui-dialog .dialog-heading h2 {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  font-size: 20px !important;
  line-height: 28px !important;
  font-weight: 600;
  color: var(--ui-text);
}
body dialog.ui-dialog .dialog-heading :is(p, .hint) {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 18px;
  color: var(--ui-muted);
}
body dialog.ui-dialog .dialog-heading::after,
body dialog.ui-dialog :is(.dialog-actions, .actions, .buttons)::before {
  content: none !important;
}
body dialog.ui-dialog .dialog-heading .close {
  position: static !important;
  flex: 0 0 32px;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px !important;
  height: 32px !important;
  min-height: 32px !important;
  min-width: 32px !important;
  margin: 0 0 0 auto;
  padding: 6px !important;
}
body dialog.ui-dialog .close .ui-icon {
  width: 20px !important;
  height: 20px !important;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}
body dialog.ui-dialog :is(.dialog-actions, .actions, .buttons) {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px !important;
  margin-top: 24px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}
body dialog.ui-dialog :is(.dialog-actions, .actions, .buttons) > :is(button, .button) {
  flex: 0 0 auto;
  min-height: 40px;
}
body dialog.ui-dialog .form-grid {
  gap: 16px;
}
body dialog.ui-dialog :is(.batch-setting-card, .generator-setting-card, .simulation-setting-card) {
  margin-bottom: 16px;
}
body dialog.ui-dialog :is(.batch-setting-card, .generator-setting-card, .simulation-setting-card):not(:has(+ :is(.batch-setting-card, .generator-setting-card, .simulation-setting-card))) {
  margin-bottom: 0;
}
body dialog.ui-dialog .error:empty { display: none; }

/* The shortcut description spans the heading instead of squeezing beside its title. */
body #shortcut-dialog.ui-dialog .shortcut-dialog-heading {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 32px;
  gap: 4px 16px;
}
body #shortcut-dialog.ui-dialog .shortcut-heading-description {
  grid-row: 2;
  grid-column: 1 / -1;
}
body #shortcut-dialog.ui-dialog .close { grid-row: 1; grid-column: 2; }
body dialog.ui-dialog .dialog-heading .management-year {
  margin: 0;
  padding: 0;
  border: 0;
  white-space: nowrap;
}

body #system-log-dialog.ui-dialog #system-log {
  max-height: min(48dvh, 480px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 8px;
}

/* Keep the live selection count with the action it describes. */
body #shortcut-dialog.ui-dialog #shortcut-progress {
  margin-left: auto;
  margin-right: 8px;
  font-size: 12px;
  line-height: 18px;
  white-space: nowrap;
}

/* Table pagination stays inside the card, outside the scrolling data area. */
body :is(#import-dialog, #print-history-dialog) .dialog-table-card {
  border: 1px solid var(--ui-field-outline);
  border-radius: 8px;
  overflow: hidden;
  background: var(--ui-surface);
}
body :is(#import-dialog, #print-history-dialog) .dialog-table-card > :is(.preview-table, #print-history-table) {
  border: 0;
  border-radius: 0;
}
body :is(#import-dialog, #print-history-dialog) .dialog-table-card > :is(.pagination, .history-pagination) {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 12px 16px;
  position: relative;
  border-top: 0;
}
body :is(#import-dialog, #print-history-dialog) .dialog-table-card > :is(.pagination, .history-pagination)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 1px;
  background: var(--ui-section-divider);
  pointer-events: none;
}

body #generator-dialog #generator-form > .generator-setting-card {
  margin-bottom: 16px;
}
body #generator-dialog #generator-form > .generator-setting-card:not(:has(+ .generator-setting-card)) {
  margin-bottom: 0;
}
