/**
 * One button type for the whole ERP: rounded corners + a light 3D bevel.
 * Colors still mark primary / danger / ghost. Shape, size and relief stay the same.
 */
:root {
  --ams-btn-radius: 10px;
  --ams-btn-font: 700 12px/1.15 Manrope, Inter, "Segoe UI", sans-serif;
  --ams-btn-pad: 8px 14px;
  --ams-btn-navy: #161C34;
  --ams-btn-crimson: #AE2129;
}

.ams-ui-btn-base,
#app main button:not([role="switch"]):not([role="tab"]),
#app main a[role="button"],
#app [role="dialog"] button:not([role="switch"]),
#app [role="dialog"] a[role="button"],
#app [aria-modal="true"] button:not([role="switch"]),
#ams-quo-slot button,
#ams-quo-layer button,
#ams-quo-tools button,
#ams-exp-slot button,
#ams-acc-slot button,
#ams-pi-slot button,
#ams-frt-slot button,
#ams-wa-slot button,
#ams-inv-preview-modal button,
#ams-inv-preview-modal a,
button.ams-quo-btn,
button.ams-quo-row-btn,
button.ams-exp-btn,
button.ams-exp-filter,
button.ams-row-btn,
button.ams-row-delete,
button.ams-inv-our-btn,
button.ams-acc-btn,
a.ams-acc-btn,
button.ams-frt-btn,
a.ams-frt-btn,
button.ams-pi-btn,
a.ams-pi-btn,
button.ams-wa-btn,
a.ams-wa-btn,
.ams-pay-actions button,
.ams-modal button,
.ams-exp-modal button {
  appearance: none !important;
  -webkit-appearance: none !important;
  border-radius: var(--ams-btn-radius) !important;
  font: var(--ams-btn-font) !important;
  letter-spacing: 0.01em !important;
  min-height: 34px !important;
  padding: var(--ams-btn-pad) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  cursor: pointer !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  border-style: solid !important;
  border-width: 1px !important;
  background-image: linear-gradient(180deg, rgba(255,255,255,.22) 0%, rgba(255,255,255,0) 46%, rgba(0,0,0,.12) 100%) !important;
  background-blend-mode: soft-light !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -2px 0 rgba(0,0,0,.16),
    0 2px 0 rgba(12,16,32,.22),
    0 3px 7px rgba(22,28,52,.18) !important;
  transition: transform .12s ease, box-shadow .12s ease, filter .12s ease !important;
}

#app main button:not([role="switch"]):not([role="tab"]):hover,
#app [role="dialog"] button:not([role="switch"]):hover,
#ams-quo-slot button:hover,
#ams-exp-slot button:hover,
#ams-acc-slot button:hover,
#ams-pi-slot button:hover,
#ams-frt-slot button:hover,
button.ams-quo-btn:hover,
button.ams-quo-row-btn:hover,
button.ams-exp-btn:hover,
button.ams-row-btn:hover,
button.ams-row-delete:hover,
button.ams-inv-our-btn:hover,
button.ams-acc-btn:hover,
a.ams-acc-btn:hover,
button.ams-frt-btn:hover,
a.ams-frt-btn:hover,
button.ams-pi-btn:hover,
a.ams-pi-btn:hover {
  filter: brightness(1.06);
  transform: translateY(-1px);
}

#app main button:not([role="switch"]):not([role="tab"]):active,
#app [role="dialog"] button:not([role="switch"]):active,
button.ams-quo-btn:active,
button.ams-quo-row-btn:active,
button.ams-exp-btn:active,
button.ams-row-btn:active,
button.ams-row-delete:active,
button.ams-inv-our-btn:active,
button.ams-acc-btn:active,
button.ams-frt-btn:active,
button.ams-pi-btn:active {
  transform: translateY(2px) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 2px 4px rgba(0,0,0,.18),
    0 1px 0 rgba(12,16,32,.2) !important;
}

/* Light / ghost — Cancel, Back, and outline controls. Same 3D block. */
button.ams-quo-btn.ghost,
button.ams-exp-btn[data-exp="close"],
button.ams-exp-btn[data-exp="back"],
button.ams-exp-btn[data-exp="back-detail"],
button.ams-exp-btn[data-exp="import"],
button.ams-exp-btn[data-exp="sample"],
button.ams-exp-btn[data-exp-x],
button.ams-exp-btn[data-exp-prev],
button.ams-exp-btn[data-exp-next],
button.ams-exp-filter:not(.active),
button.ams-acc-btn:not(.primary):not(.active),
a.ams-acc-btn:not(.primary):not(.active),
button.ams-frt-btn:not(.primary):not(.active):not(.danger),
a.ams-frt-btn:not(.primary):not(.active),
button.ams-pi-btn:not(.primary):not(.active),
a.ams-pi-btn:not(.primary):not(.active),
#app main button.border,
#app main button.bg-secondary,
#app main button.bg-background,
#app main button[class*="outline"],
#app main button[class*="ghost"] {
  background-color: #f4f6fb !important;
  color: #161C34 !important;
  border-color: #c5cedc !important;
}

/* Navy fill — every row action (Preview, Edit, Open, Download, Convert) */
button.ams-quo-btn:not(.ghost):not(.danger):not(.accent),
button.ams-quo-row-btn:not(.danger),
button.ams-exp-btn:not(.primary):not(.danger),
button.ams-row-btn:not(.danger),
button.ams-inv-our-btn,
button.ams-acc-btn.active,
a.ams-acc-btn.active,
button.ams-frt-btn.active,
a.ams-frt-btn.active,
button.ams-exp-filter.active,
#app main button.bg-navy,
#app main button.bg-primary,
#app main a.bg-navy {
  background-color: #161C34 !important;
  color: #fff !important;
  border-color: #0c1020 !important;
}

/* Crimson fill — primary CTA + delete */
button.ams-quo-btn.accent,
button.ams-quo-btn.danger,
button.ams-quo-row-btn.danger,
button.ams-exp-btn.primary,
button.ams-exp-btn.danger,
button.ams-row-btn.danger,
button.ams-row-delete,
button.ams-acc-btn.primary,
a.ams-acc-btn.primary,
button.ams-frt-btn.primary,
a.ams-frt-btn.primary,
button.ams-frt-btn.danger,
button.ams-pi-btn.primary,
a.ams-pi-btn.primary,
#app main button.bg-crimson,
#app main a.bg-crimson,
#app main button.bg-destructive {
  background-color: #AE2129 !important;
  color: #fff !important;
  border-color: #7a151c !important;
}

button:disabled,
button[disabled],
.ams-quo-row-btn:disabled,
.ams-quo-row-btn.is-done {
  opacity: .55 !important;
  cursor: not-allowed !important;
  transform: none !important;
  filter: none !important;
}

/* Icon-only controls keep the same corners and 3D, just square padding */
#app header button:has(> svg:only-child),
#app header button:has(> span.sr-only + svg),
button[aria-label="Close"]:has(svg),
button.ams-quo-box-del,
button[data-remove],
button[data-jl-remove] {
  min-width: 34px !important;
  width: auto !important;
  padding: 7px 9px !important;
}

/* Do not restyle sidebar nav, choice cards, file tabs, or switches */
aside.bg-sidebar a,
aside.bg-sidebar button,
.bg-sidebar a,
.bg-sidebar button,
button.ams-quo-kind,
button.ams-exp-doc,
[role="switch"],
[role="tab"] {
  background-image: none !important;
  background-blend-mode: normal !important;
  box-shadow: none !important;
  min-height: unset !important;
  transform: none !important;
}

aside.bg-sidebar a,
aside.bg-sidebar button,
.bg-sidebar a,
.bg-sidebar button {
  border-radius: 10px !important;
}
