.button{border-radius:var(--radius-control);font:var(--text-button-14);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease, color var(--duration-fast) ease;border:none;flex-shrink:0;justify-content:center;align-items:center;gap:8px;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.5}.button--small{height:32px;padding:0 12px}.button--medium{height:40px;padding:0 12px}.button--large{height:48px;font:var(--text-label-16);padding:0 12px}.button--xlarge{border-radius:var(--radius-24);height:56px;font:var(--text-label-16);padding:0 12px}.button:not(:has(.button-label)){aspect-ratio:1;padding:0}.button--primary{background:linear-gradient(0deg, var(--button-primary-from), var(--button-primary-to));color:var(--primary-contrast)}.button--primary:hover:not(:disabled){background:linear-gradient(0deg, var(--button-primary-from-hover), var(--button-primary-to-hover))}.button--accent{background:linear-gradient(0deg, var(--button-accent-from), var(--button-accent-to));color:var(--accent-contrast);font-weight:600}.button--accent:hover:not(:disabled){background:linear-gradient(0deg, var(--button-accent-from-hover), var(--button-accent-to))}.button--primary,.button--accent{position:relative;overflow:hidden}.button--primary:before,.button--accent:before{content:"";background:linear-gradient(90deg, transparent, var(--button-shimmer-primary), transparent);pointer-events:none;width:100%;height:100%;animation:3.5s ease-in-out infinite button-shimmer;position:absolute;top:0;left:-100%}.button--accent:before{background:linear-gradient(90deg, transparent, var(--button-shimmer-accent), transparent)}.button--primary:disabled:before,.button--accent:disabled:before{display:none}@keyframes button-shimmer{0%{left:-100%}40%{left:100%}40.1%,to{left:100%}}@media (prefers-reduced-motion:reduce){.button--primary:before,.button--accent:before{display:none}}.button--secondary{background:linear-gradient(0deg, var(--button-secondary-from), var(--button-secondary-to));color:var(--ds-gray-1000);box-shadow:var(--ds-shadow-border-base)}.button--secondary:hover:not(:disabled){background:linear-gradient(0deg, var(--button-secondary-from-hover), var(--button-secondary-to))}.button--tertiary{color:var(--ds-gray-1000);background:0 0}.button--tertiary:hover:not(:disabled){background:var(--ds-gray-alpha-100)}.button--secondary.button--border-on-hover{box-shadow:none;background:0 0}.button--secondary.button--border-on-hover:hover:not(:disabled){background:linear-gradient(0deg, var(--button-secondary-from-hover), var(--button-secondary-to));box-shadow:var(--ds-shadow-border-base)}.button--secondary.button--border-on-hover:focus-visible{box-shadow:var(--ds-focus-ring)}.button--secondary.button--active,.button--tertiary.button--active,.button--secondary.button--border-on-hover.button--active{background:linear-gradient(0deg, var(--button-secondary-from), var(--button-secondary-to));box-shadow:var(--ds-shadow-border-base)}.button--secondary.button--active:hover:not(:disabled),.button--tertiary.button--active:hover:not(:disabled),.button--secondary.button--border-on-hover.button--active:hover:not(:disabled){background:linear-gradient(0deg, var(--button-secondary-from-hover), var(--button-secondary-to))}.button--link{color:var(--ds-gray-1000);background:0 0;padding:0}.button--link:hover:not(:disabled) .button-label{text-underline-offset:4px;text-decoration:underline}.button-icon{display:inline-flex}.button-icon svg{width:16px;height:16px}
