:root{--sa-action-primary:#4f46e5;--sa-action-primary-dark:#3730a3}

/* Project action theme. Keep visual rules here; page styles may only position controls.
   Legacy aliases retain all existing event handlers. */
:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-item-save,.sa-map-count,.up-email-verify-action,.sa-filter-reset), :is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions,.sa-session-actions,.sa-quick-master,.sa-export-periods) :is(a,button), .sa-report-page :is(.sa-page-header a,.sa-report-navigation a,button[type=submit],a.inline-flex), .sa-record-page .sa-page-header :is(a,button) {
  display:inline-flex;align-items:center;justify-content:center;gap:var(--sa-space-2,8px);min-height:40px;padding:var(--sa-space-2,8px) var(--sa-space-3,12px);border:1px solid #cfd4e6;border-radius:9px;background:#fff;color:#3d4770;font-family:var(--sa-font-family,Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif);font-size:var(--sa-text-base,13px);font-weight:var(--sa-weight-strong,700);line-height:20px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}

:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-item-save,.sa-map-count,.up-email-verify-action,.sa-filter-reset):hover:not(:disabled):not([aria-disabled=true]),
:is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions,.sa-session-actions,.sa-quick-master,.sa-export-periods) :is(a,button):hover:not(:disabled):not([aria-disabled=true]),
.sa-report-page :is(.sa-page-header a,.sa-report-navigation a,button[type=submit],a.inline-flex):hover:not(:disabled):not([aria-disabled=true]),
.sa-record-page .sa-page-header :is(a,button):hover:not(:disabled):not([aria-disabled=true]) {
  border-color:#a9a4f6;background:#f5f5ff;color:#3730a3;transform:translateY(-1px);
}

:is(.btn-primary,.sa-session-stay,.sa-btn-primary,.usr-btn.primary,.up-btn:not(.up-btn-secondary),.uv-btn:not(.light),.ec-btn.primary,.sa-email-verify-btn.primary,.sa-error-btn-primary), .sa-report-page :is(button[type=submit],a.bg-indigo-600) {
  border-color:transparent;background:var(--sa-action-primary);color:#fff;
}

:is(.sa-btn-primary:hover:not(:disabled):not([aria-disabled=true]),
.usr-btn.primary:hover:not(:disabled):not([aria-disabled=true]),
.up-btn:not(.up-btn-secondary):hover:not(:disabled):not([aria-disabled=true]),
.uv-btn:not(.light),.ec-btn.primary,.sa-email-verify-btn.primary,.sa-error-btn-primary):hover:not(:disabled):not([aria-disabled=true]),
.sa-report-page :is(button[type=submit],a.bg-indigo-600):hover:not(:disabled):not([aria-disabled=true]) {
  border-color:transparent;background:var(--sa-action-primary-dark);color:#fff;
}

:is(.sa-btn-danger,.usr-btn.danger) {
  border-color:#ffd5dc;background:#fff1f3;color:#b4233d;
}

:is(.sa-btn-danger,.usr-btn.danger):hover:not(:disabled):not([aria-disabled=true]) {
  border-color:#ffbbc7;background:#ffeef1;color:#a91e37;
}

:is(.copy-item,.delete-item,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-map-count), :is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions) :is(a,button), .usr-actions .usr-btn {
  min-height:32px;min-width:32px;padding:0 var(--sa-space-2,8px);gap:var(--sa-space-1,4px);border-color:#dce1ee;border-radius:8px;background:#fff;color:#4b5675;
}

:is(.copy-item,.delete-item,.sa-icon-btn,.sa-item-action), .sa-row-actions :is(a,button) {
  width:32px;height:32px;padding:0;
}

.sa-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--sa-space-1,4px);white-space:nowrap}
.sa-row-actions form{margin:0}
.sa-row-actions :is(a,button){position:relative}
:is(.sa-icon-btn,.sa-item-action,.copy-item,.delete-item),.sa-row-actions :is(a,button){box-sizing:border-box;flex:0 0 32px}

/* Install includes a label: reserve its full width beside the profile menu. */
.sa-install-btn{flex:0 0 auto;width:auto;box-sizing:border-box}
.sa-install-btn[hidden]{display:none}

:is(.sa-install-btn,.copy-item,.delete-item,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-map-count):hover:not(:disabled):not([aria-disabled=true]),
:is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions) :is(a,button):hover:not(:disabled):not([aria-disabled=true]), .usr-actions .usr-btn:hover:not(:disabled):not([aria-disabled=true]) {
  border-color:#a7a1fa;background:#f4f3ff;color:#4f46e5;transform:none;
}

.usr-actions .usr-btn.danger:hover:not(:disabled):not([aria-disabled=true]),
:is(.delete-item,.sa-action-btn.danger,.sa-icon-btn.danger,.sa-delete-item):hover:not(:disabled):not([aria-disabled=true]),
:is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions) :is(.is-danger,button[type=submit],.text-red-600):hover:not(:disabled):not([aria-disabled=true]) {
  border-color:#ffc9d2;background:#fff2f4;color:#bd2944;
}

:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-item-save,.sa-map-count,.up-email-verify-action,.sa-filter-reset):focus-visible,
:is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions,.sa-session-actions,.sa-quick-master,.sa-export-periods) :is(a,button):focus-visible,
.sa-report-page :is(.sa-page-header a,.sa-report-navigation a,button[type=submit],a.inline-flex):focus-visible,
.sa-record-page .sa-page-header :is(a,button):focus-visible {
  outline:3px solid rgba(79,70,229,.28);outline-offset:2px;
}

:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-item-save,.sa-map-count,.up-email-verify-action,.sa-filter-reset):active:not(:disabled):not([aria-disabled=true]),
:is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions,.sa-session-actions,.sa-quick-master,.sa-export-periods) :is(a,button):active:not(:disabled):not([aria-disabled=true]),
.sa-report-page :is(.sa-page-header a,.sa-report-navigation a,button[type=submit],a.inline-flex):active:not(:disabled):not([aria-disabled=true]),
.sa-record-page .sa-page-header :is(a,button):active:not(:disabled):not([aria-disabled=true]) {
  transform:none;box-shadow:inset 0 1px 3px rgba(25,33,63,.14);
}

.sa-export-periods button.is-active {
  border-color:#a7a1fa;background:#f4f3ff;color:#4f46e5;
}

:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-item-save,.sa-map-count,.up-email-verify-action,.sa-filter-reset):is(:disabled,[aria-disabled=true]),
:is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions,.sa-session-actions,.sa-quick-master,.sa-export-periods) :is(a,button):is(:disabled,[aria-disabled=true]),
.sa-report-page :is(.sa-page-header a,.sa-report-navigation a,button[type=submit],a.inline-flex):is(:disabled,[aria-disabled=true]),
.sa-record-page .sa-page-header :is(a,button):is(:disabled,[aria-disabled=true]) {
  opacity:.55;cursor:not-allowed;transform:none;box-shadow:none;
}

:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action) > i, :is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions) :is(a,button) > i {
  color:inherit;font-size:inherit;line-height:1;flex-shrink:0;
}

@media(prefers-reduced-motion:reduce) {
:is(.btn,.audit-export-btn,.sa-install-btn,.copy-item,.delete-item,.sa-btn,.usr-btn,.up-btn,.uv-btn,.ec-btn,.sa-email-verify-btn,.sa-error-btn,.sa-action-btn,.sa-icon-btn,.sa-item-action,.sa-item-save,.sa-map-count,.up-email-verify-action,.sa-filter-reset), :is(.sa-row-actions,.sa-supplier-actions,.sa-material-actions,.sa-session-actions,.sa-quick-master,.sa-export-periods) :is(a,button), .sa-report-page :is(.sa-page-header a,.sa-report-navigation a,button[type=submit],a.inline-flex), .sa-record-page .sa-page-header :is(a,button) {transition:none}
}


/* Shared compact table toolbar controls use the Project action dimensions. */
.sa-data-toolbar { --sa-toolbar-control-height:32px; }
.sa-data-toolbar .sa-btn {
  min-height:var(--sa-toolbar-control-height);height:var(--sa-toolbar-control-height);width:auto;box-sizing:border-box;
  padding:0 var(--sa-space-2,8px);gap:var(--sa-space-1,4px);border-radius:8px;
}
.sa-data-toolbar .sa-btn > span {
  margin-left:0;color:inherit;font-size:inherit;line-height:inherit;
}
.sa-data-toolbar .sa-bulk-verify-controls .sa-input {
  min-height:var(--sa-toolbar-control-height);height:var(--sa-toolbar-control-height);box-sizing:border-box;
  padding:var(--sa-space-1,4px) var(--sa-space-2,8px);
}
body.sa-has-shell .sa-data-toolbar .sa-live-search {
  height:var(--sa-toolbar-control-height);min-height:var(--sa-toolbar-control-height);
  box-sizing:border-box;border-radius:8px;
}
body.sa-has-shell .sa-data-toolbar .sa-live-search input[type=search] {
  height:100%;min-height:0;box-sizing:border-box;padding-top:0;padding-bottom:0;
}
@media(max-width:760px) {
  .sa-data-toolbar { --sa-toolbar-control-height:40px; }
}
