.button{border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);padding:var(--space-2) var(--space-4);min-height:var(--touch-target-min);justify-content:center;align-items:center;gap:var(--space-2);border:1px solid #0000;font-weight:600;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s;display:inline-flex;position:relative;overflow:hidden}.button--primary{background-color:var(--accent-blue);color:var(--on-primary,var(--accent-blue-fg,#fff));box-shadow:0 6px 18px color-mix(in srgb, var(--accent-blue) 25%, transparent)}.button--primary:hover:not(.button--disabled){background-color:var(--accent-blue-hover,var(--accent-blue));box-shadow:0 8px 22px color-mix(in srgb, var(--accent-blue) 35%, transparent);transform:translateY(-1px)}.button--secondary{background-color:var(--surface-2);color:var(--text-primary);border-color:var(--border-light)}.button--secondary:hover:not(.button--disabled){background-color:var(--surface-3);border-color:var(--border-light);transform:translateY(-1px)}.button--danger{background-color:var(--accent-red);color:var(--on-danger,var(--accent-red-fg,#fff));box-shadow:0 6px 18px color-mix(in srgb, var(--accent-red) 20%, transparent)}.button--danger:hover:not(.button--disabled){background-color:var(--accent-red);filter:brightness(1.1);box-shadow:0 8px 22px color-mix(in srgb, var(--accent-red) 30%, transparent);transform:translateY(-1px)}.button--accent{background:var(--accent-gradient);color:#fff;box-shadow:0 6px 18px color-mix(in srgb, var(--accent-cyan) 25%, transparent);border:none}.button--accent:hover:not(.button--disabled){filter:brightness(1.1);box-shadow:0 8px 22px color-mix(in srgb, var(--accent-cyan) 35%, transparent);transform:translateY(-1px)}.button--legacy-primary{background:var(--accent-gradient-primary);color:#fff;box-shadow:var(--elevation-2);border:none}.button--legacy-primary:hover:not(.button--disabled){transform:var(--transform-hover-lift);box-shadow:var(--shadow-neon), var(--elevation-3)}.button--ghost{color:var(--text-secondary);background:0 0}.button--ghost:hover:not(.button--disabled){background:var(--surface-hover);color:var(--text-primary)}.button--outline{border-color:var(--border-light);color:var(--text-primary);background:0 0}.button--outline:hover:not(.button--disabled){background:var(--surface-hover);border-color:var(--border-medium-color)}.button--link{min-height:auto;color:var(--accent-cyan);background:0 0;border-radius:0;padding:0;position:relative}.button--link:before{content:"";min-width:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.button--link:hover:not(.button--disabled){background:0 0;text-decoration:underline}.button--icon{width:var(--touch-target-min);height:var(--touch-target-min);border-radius:50%;padding:0}.button--xs{font-size:var(--text-xs);padding:0 var(--space-2);height:24px;min-height:24px;position:relative}.button--xs:before{content:"";min-width:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.button--sm{font-size:var(--text-sm);padding:var(--space-1) var(--space-3);min-height:32px;position:relative}.button--sm:before{content:"";min-width:44px;min-height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.button--md{font-size:var(--text-base);padding:var(--space-2) var(--space-4);min-height:44px}.button--lg{font-size:var(--text-lg);padding:var(--space-3) var(--space-5);min-height:52px}.button--xl{font-size:var(--text-xl);padding:var(--space-4) var(--space-6);min-height:64px}.button--disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.button--full-width{width:100%;display:flex}.button--loading{cursor:wait}.button--loading .button__text,.button--loading .button__icon-left,.button--loading .button__icon-right{display:none}.button:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-cyan) 20%, transparent)}.button:active:not(.button--disabled):not(.button--loading){transform:translateY(0)scale(.97)}.button__spinner{justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.button__icon-left,.button__icon-right{flex-shrink:0;justify-content:center;align-items:center;display:flex}.button__text{white-space:nowrap}@media (width<=400px){.button__text{white-space:normal;overflow-wrap:anywhere}}
