.button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);overflow:hidden;box-sizing:border-box;width:fit-content;min-width:fit-content;font-family:system-ui,sans-serif;font-weight:var(--font-semibold);text-decoration:none;text-align:center;white-space:nowrap;line-height:var(--leading-tight);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;user-select:none;transition:background-color var(--transition-normal),border-color var(--transition-normal),transform var(--transition-fast),box-shadow var(--transition-normal),opacity var(--transition-fast);-webkit-tap-highlight-color:transparent}.button:focus-visible{outline:3px solid var(--border-focus);outline-offset:2px}.button[style*=--local-background-color]{background-color:var(--local-background-color)}.button[style*=--local-text-color] .button__text{color:var(--local-text-color)}.button--sm{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-md)}.button--md{padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.button--lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg);border-radius:var(--radius-xl)}.button[style*=--local-padding-scalar]{padding:calc(var(--space-3) * var(--local-padding-scalar)) calc(var(--space-6) * var(--local-padding-scalar))}.button--primary{background-color:var(--theme);color:var(--text);box-shadow:var(--shadow-md)}.button--primary:hover:not(.button--disabled):not(.button--loading){background-color:var(--theme-hover);box-shadow:var(--shadow-lg),var(--glow-sm);transform:translateY(-2px)}.button--primary:active:not(.button--disabled):not(.button--loading){transform:translateY(0);box-shadow:var(--shadow-md)}.button--secondary{background-color:var(--surface);color:var(--text);border-color:var(--border);box-shadow:var(--shadow-sm)}.button--secondary:hover:not(.button--disabled):not(.button--loading){background-color:var(--surface-hover);border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.button--secondary:active:not(.button--disabled):not(.button--loading){background-color:var(--surface-active);transform:translateY(0)}.button--tertiary{background-color:transparent;color:var(--theme);border-color:var(--theme)}.button--tertiary:hover:not(.button--disabled):not(.button--loading){background-color:#0b85c81a;border-color:var(--theme-hover);box-shadow:var(--glow-sm)}.button--tertiary:active:not(.button--disabled):not(.button--loading){background-color:#0b85c833}.button--ghost{background-color:transparent;color:var(--text);border-color:transparent;box-shadow:none}.button--ghost:hover:not(.button--disabled):not(.button--loading){background-color:var(--surface);border-color:var(--border)}.button--ghost:active:not(.button--disabled):not(.button--loading){background-color:var(--surface-hover)}.button--danger{background-color:var(--error);color:var(--text);box-shadow:var(--shadow-md)}.button--danger:hover:not(.button--disabled):not(.button--loading){background-color:#ef4444;box-shadow:var(--shadow-lg),0 0 20px #dc26264d;transform:translateY(-2px)}.button--danger:active:not(.button--disabled):not(.button--loading){background-color:#b91c1c;transform:translateY(0)}.button--disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.button--loading{cursor:wait;position:relative}.button--loading .button__text{opacity:.6}.button--full-width{width:100%}.button__text{position:relative;z-index:1}.button__icon{width:20px;height:20px;object-fit:contain;flex-shrink:0}.button--sm .button__icon{width:16px;height:16px}.button--lg .button__icon{width:24px;height:24px}.button__spinner{position:absolute;right:var(--space-3);display:flex;align-items:center;justify-content:center}.spinner{width:18px;height:18px;animation:spin 1s linear infinite}.button--sm .spinner{width:14px;height:14px}.button--lg .spinner{width:22px;height:22px}.spinner__circle{stroke:currentColor;stroke-dasharray:50;stroke-dashoffset:25;stroke-linecap:round;animation:spinner-dash 1.5s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.button__ripple{position:absolute;border-radius:50%;background-color:#ffffff4d;width:10px;height:10px;margin-top:-5px;margin-left:-5px;pointer-events:none;animation:ripple-animation .6s ease-out}@keyframes ripple-animation{0%{transform:scale(0);opacity:1}to{transform:scale(40);opacity:0}}@media (max-width: 768px){.button--sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.button--md{padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}.button--lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}}@media (prefers-reduced-motion: reduce){.button{transition:none}.button__ripple{animation:none}.spinner{animation:spin 2s linear infinite}.spinner__circle{animation:none}}@media (prefers-contrast: high){.button{border-width:3px}.button:focus-visible{outline-width:4px}}
