/* Shared button palette. Loaded last on every page; !important also overrides
   legacy ID selectors and dynamically applied colors without changing layout. */
:root {
  --button-dark: #21121c;
  --button-pink: #f3a1bc;
  --button-muted-border: #59434f;
  --button-ink: #24101b;
  --button-text: #fff5f8;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact) {
  --button-bg: transparent;
  --button-border: var(--button-muted-border);
  --button-hover-border: #886576;
  --button-glow: none;
  --button-petals: none;
  --button-fg: var(--button-text);
  --button-hover-bg: #211820;
  --button-hover-fg: var(--button-text);
  background-color: var(--button-bg) !important;
  background-image: none !important;
  border: 1px solid var(--button-border) !important;
  color: var(--button-fg) !important;
  text-shadow: none !important;
  box-shadow: none !important;
  transition: background-color .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease, transform .22s ease !important;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):is(.primary, .button-primary, .register-link, .download-button, .tool-submit, [type="submit"], #update-password, #device-request, #create-user-button, #create-user-save, #save-user-permissions, #save-user-status, #save-user-details, #save-user-password, #save-user-license, #save-user-locks, #save-application, #generate-button, #check-keys-button, #extend-keys-button, #publish-website-announcement, #publish-announcement, #save-reseller-program, #save-reseller) {
  --button-bg: #100d11;
  --button-border: var(--button-pink);
  --button-hover-border: #ffd0df;
  --button-fg: var(--button-text);
  --button-hover-bg: #21121c;
  --button-hover-fg: var(--button-text);
  --button-glow: 0 0 18px #f3a1bc55;
  --button-petals: block;
  position: relative;
  overflow: visible;
}
/* Primary actions: save, create, publish, sign in, redeem and main downloads.
   Navigation, close, pagination, copy and filters stay outlined, including on hover. */
/* Destructive actions and the requested bulk unlock retain semantic colors. */
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):is(.danger, .delete-user-button) {
  --button-bg: #401525;
  --button-border: #c54f6d;
  --button-hover-border: #e57892;
  --button-hover-bg: #c54f6d;
  --button-fg: #fff5f8;
  --button-hover-fg: #fff5f8;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):is(.success, #unlock-all-passwords) {
  --button-bg: #16452e;
  --button-border: #53be88;
  --button-hover-border: #85e4b1;
  --button-hover-bg: #53be88;
  --button-fg: #a4ffd0;
  --button-hover-fg: #10291c;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):not(:disabled):not([aria-disabled="true"]):is(:hover, :focus-visible) {
  background-color: var(--button-hover-bg) !important;
  color: var(--button-hover-fg) !important;
  border-color: var(--button-hover-border) !important;
  box-shadow: var(--button-glow) !important;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):focus-visible {
  outline: 2px solid var(--button-border) !important;
  outline-offset: 3px;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):is(:disabled, [aria-disabled="true"]) {
  opacity: .45 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}
/* Preserve the 1.5-second hold progress overlay. */
button.hold-action {
  background-image: linear-gradient(#ffffff26, #ffffff26) !important;
  background-size: var(--hold-progress, 0%) 100% !important;
  background-repeat: no-repeat !important;
}
@media (prefers-reduced-motion: reduce) {
  :is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact) { transition: none !important; }
}

/* Native upload controls participate in the same outlined palette. */
input[type="file"]::file-selector-button {
  padding: 8px 12px;
  margin-right: 10px;
  border: 1px solid var(--button-muted-border);
  border-radius: 8px;
  background: transparent;
  color: var(--button-text);
  font: inherit;
  cursor: pointer;
  transition: background-color .22s ease, color .22s ease;
}
input[type="file"]::file-selector-button:hover {
  background: transparent;
  color: var(--button-text);
  border-color: #886576;
  background: #211820;
}
input[type="file"]:focus-visible::file-selector-button {
  background: transparent;
  color: var(--button-text);
  border-color: #886576;
  background: #211820;
}
@media (prefers-reduced-motion: reduce) {
  input[type="file"]::file-selector-button { transition: none; }
}

/* Only primary actions emit decorative petals; secondary controls stay quiet. */
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact)::before, :is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact)::after {
  display: var(--button-petals) !important;
  position: absolute;
  width: 10px; height: 7px;
  border-radius: 100% 0 100% 0;
  background: linear-gradient(135deg, #fff2f8, #ef8eaf);
  box-shadow: 0 0 10px #f489b5bb;
  content: "";
  opacity: 0;
  pointer-events: none;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):not(:disabled):not([aria-disabled="true"]):is(:hover,:focus-visible)::before {
  animation: button-primary-petal-left .8s ease-out !important;
}
:is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact):not(:disabled):not([aria-disabled="true"]):is(:hover,:focus-visible)::after {
  animation: button-primary-petal-right .9s ease-out .1s !important;
}
@keyframes button-primary-petal-left {
  0% { left:35%; top:5px; opacity:0; transform:rotate(0); }
  30% { opacity:1; }
  100% { left:-18px; top:-28px; opacity:0; transform:rotate(250deg); }
}
@keyframes button-primary-petal-right {
  0% { right:35%; top:5px; opacity:0; transform:rotate(0); }
  30% { opacity:1; }
  100% { right:-18px; top:-34px; opacity:0; transform:rotate(-230deg); }
}
@media (prefers-reduced-motion:reduce), (hover:none) {
  :is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact)::before, :is(button, input[type="submit"], input[type="button"], input[type="reset"], [role="button"], a.button, a.nav-button, a.download-button, a.support-link, a.register-link, a.reseller-action-button, a.contact)::after { display:none !important; animation:none !important; }
}

/* Header controls share the original Animations switch palette on every page.
   The scoped specificity overrides primary-action colors within the header. */
:root {
  --header-control-text: #e2b6c5;
  --header-control-bg: rgba(42, 14, 30, .45);
  --header-control-border: rgba(138, 62, 92, .72);
}
:is(header, #tsumi-header-theme) :is(button, a:not(.brand):not(.public-brand), .motion-switch, #tsumi-header-control) {
  --button-bg: var(--header-control-bg);
  --button-border: var(--header-control-border);
  --button-fg: var(--header-control-text);
  --button-hover-bg: rgba(62, 24, 43, .65);
  --button-hover-border: #a65375;
  --button-hover-fg: var(--header-control-text);
  --button-glow: none;
  --button-petals: none;
  color: var(--header-control-text) !important;
  background-color: var(--header-control-bg) !important;
  background-image: none !important;
  border: 1px solid var(--header-control-border) !important;
  border-radius: 9px;
  box-shadow: none !important;
  text-shadow: none !important;
}
:is(header, #tsumi-header-theme) :is(button, a:not(.brand):not(.public-brand), .motion-switch, #tsumi-header-control):is(:hover, :focus-visible) {
  color: var(--header-control-text) !important;
  background-color: rgba(62, 24, 43, .65) !important;
  border-color: #a65375 !important;
  box-shadow: none !important;
}
header :is(.switch-label, .brand h1, .public-brand) {
  color: var(--header-control-text) !important;
}
header :is(.nav-icon-image, .dropdown-icon, .nav-icon) {
  color: var(--header-control-text) !important;
  filter: brightness(0) saturate(100%) invert(83%) sepia(14%) saturate(560%) hue-rotate(289deg) brightness(94%) contrast(87%) !important;
}
