/*
 * ELO-KIN PERMANENT BUTTON ALIGNMENT STANDARD
 *
 * Conventional button content is one visual group centered on both axes.
 * This file loads after feature styles so new screens inherit the standard.
 * The exclusions below are documented design roles: disclosure fields,
 * navigation/menu rows, selectable content cards, and media thumbnails.
 */
:root { --button-content-gap: .5rem; }

html body :is(
  button,
  input[type="button"],
  input[type="submit"],
  label.file-button
):not(.hidden):not([hidden]):not(:where(
  .menu-item,
  [role="menuitem"],
  .section-menu-button,
  .profile-menu-button,
  .kinstead-control-button,
  .kinstead-popup-select-button,
  .kinstead-picker-option,
  .signin-person,
  .adaptive-preset-card,
  .archive-category-card,
  .attachment-image-button,
  .journal-cover,
  .journal-page-thumb,
  .journal-page-grid-card,
  .journal-search-result,
  .journal-layer-preview-button,
  .journal-category-summary,
  .app-dropdown-menu button,
  .profile-menu button,
  .section-menu button,
  .compact-action-menu-panel button,
  .journal-menu-panel button,
  .journal-media-menu-panel button,
  .journal-drawer-rows button,
  .journal-drawer-sections > section > button,
  .journal-more-sections button,
  .journal-category-actions button,
  .journal-format-history button,
  .journal-insert-actions > button,
  [data-button-align="start"],
  [data-button-align="spread"]
)) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--button-content-gap) !important;
  text-align: center !important;
}

/* A spinner, icon, or artwork must not bring its own baseline/margin offset. */
html body :is(button,label.file-button):not(.hidden):not([hidden]):not(:where(
  .menu-item,
  [role="menuitem"],
  .section-menu-button,
  .profile-menu-button,
  .kinstead-control-button,
  .kinstead-popup-select-button,
  .kinstead-picker-option,
  .signin-person,
  .adaptive-preset-card,
  .archive-category-card,
  .attachment-image-button,
  .journal-cover,
  .journal-page-thumb,
  .journal-page-grid-card,
  .journal-search-result,
  .journal-layer-preview-button,
  .journal-category-summary,
  .app-dropdown-menu button,
  .profile-menu button,
  .section-menu button,
  .compact-action-menu-panel button,
  .journal-menu-panel button,
  .journal-media-menu-panel button,
  .journal-drawer-rows button,
  .journal-drawer-sections > section > button,
  .journal-more-sections button,
  .journal-category-actions button,
  .journal-format-history button,
  .journal-insert-actions > button,
  [data-button-align="start"],
  [data-button-align="spread"]
)) > :is(svg,img,.ui-icon,.button-icon,.button-spinner,[role="progressbar"]) {
  flex: 0 0 auto !important;
  align-self: center !important;
  margin: 0 !important;
  vertical-align: middle !important;
}

/* Icon-only targets retain their established dimensions and center the art. */
html body :is(
  button.ui-icon-button,
  summary.ui-icon-button,
  button.icon-button,
  button.kinstead-picker-close,
  button[data-picker-close]
):not(.hidden):not([hidden]) {
  display: inline-grid !important;
  place-items: center !important;
  padding: 0 !important;
  text-align: center !important;
  line-height: 1 !important;
}

/* Split-width headings leave compact add actions just enough inline room to
   keep icon + label as one centered group instead of producing a ragged wrap. */
@media (min-width: 621px) and (max-width: 900px) {
  html body #appShell :is(#addTask,#addCountdown,#addRoutine,#newJournal,#createLogbook).adaptive-action,
  html body #appShell .section-heading > .section-actions > button.adaptive-action {
    padding-inline: 12px !important;
  }
}

html body :is(
  button.ui-icon-button,
  summary.ui-icon-button,
  button.icon-button,
  button.kinstead-picker-close,
  button[data-picker-close]
):not(.hidden):not([hidden]) > :is(svg,img,.ui-icon,span) {
  position: static !important;
  inset: auto !important;
  display: block !important;
  align-self: center !important;
  justify-self: center !important;
  margin: 0 !important;
}

/* Explicit exceptions remain intentionally start-aligned or distributed. */
html body :is(
  .menu-item,
  [role="menuitem"],
  .signin-person,
  .kinstead-picker-option,
  .journal-menu-panel button,
  .journal-media-menu-panel button,
  .journal-drawer-rows button,
  .journal-drawer-sections > section > button,
  .journal-more-sections button,
  .journal-category-actions button,
  .journal-format-history button,
  .journal-insert-actions > button,
  [data-button-align="start"]
) {
  justify-content: flex-start !important;
  text-align: left !important;
}

html body :is(
  .section-menu-button,
  .profile-menu-button,
  .kinstead-control-button,
  .kinstead-popup-select-button,
  .journal-category-summary,
  .archive-category-card,
  [data-button-align="spread"]
) {
  justify-content: space-between !important;
  text-align: left !important;
}
