.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--button-padding-x-md);height:var(--button-height-md);border:none;border-radius:var(--button-border-radius);font-family:inherit;font-size:var(--button-font-size-md);font-weight:var(--font-semibold);text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:var(--button-transition);position:relative;overflow:hidden;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px) scale(1.02)}.btn:active:not(:disabled){transform:translateY(0) scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible{outline:var(--focus-outline-width) var(--focus-outline-style) var(--accent);outline-offset:var(--focus-outline-offset)}.btn--sm{height:var(--button-height-sm);padding:var(--space-1) var(--button-padding-x-sm);font-size:var(--button-font-size-sm)}.btn--md{height:var(--button-height-md);padding:var(--space-2) var(--button-padding-x-md);font-size:var(--button-font-size-md)}.btn--lg{height:var(--button-height-lg);padding:var(--space-3) var(--button-padding-x-lg);font-size:var(--button-font-size-lg)}.btn--primary{background:linear-gradient(120deg,var(--accent) 0,#8b5cf6 100%);color:#fff;box-shadow:0 2px 8px rgba(124,58,237,.2)}.btn--primary:hover:not(:disabled){background:linear-gradient(120deg,var(--accent-deep) 0,#7c3aed 100%);box-shadow:0 6px 16px rgba(124,58,237,.35)}.btn--primary:active:not(:disabled){box-shadow:0 2px 8px rgba(124,58,237,.2)}.btn--secondary{background:transparent;color:var(--color-text-primary);border:2px solid var(--color-border)}.btn--secondary:hover:not(:disabled){background:var(--color-interactive-secondary);color:var(--accent);border-color:var(--accent);box-shadow:0 6px 16px rgba(124,58,237,.15)}.btn--secondary:active:not(:disabled){background:rgba(124,58,237,.15)}.btn--ghost{background:transparent;color:var(--color-text-primary);border:none}.btn--ghost:hover:not(:disabled){background:rgba(124,58,237,.1);color:var(--accent)}.btn--ghost:active:not(:disabled){background:rgba(124,58,237,.15)}.btn--danger{background:var(--error);color:#fff;box-shadow:0 2px 8px rgba(239,68,68,.2)}.btn--danger:hover:not(:disabled){background:#dc2626;box-shadow:0 6px 16px rgba(239,68,68,.35)}.btn--danger:active:not(:disabled){box-shadow:0 2px 8px rgba(239,68,68,.2)}.btn--success{background:var(--success);color:#fff;box-shadow:0 2px 8px rgba(16,185,129,.2)}.btn--success:hover:not(:disabled){background:#059669;box-shadow:0 6px 16px rgba(16,185,129,.35)}.btn--success:active:not(:disabled){box-shadow:0 2px 8px rgba(16,185,129,.2)}.btn--full{width:100%}.btn-content{justify-content:center;gap:var(--space-2);width:100%;height:100%}.btn-content,.btn-text{display:inline-flex;align-items:center}.btn-text{white-space:nowrap}.btn-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.btn-icon--left{order:-1}.btn-icon--right{order:1}.btn-spinner{margin-right:var(--space-1)}[data-theme=light] .btn--secondary{background:hsla(0,0%,100%,.9);border-color:var(--light-border);color:var(--light-text)}[data-theme=light] .btn--secondary:hover:not(:disabled){background:#eef2ff;border-color:#c4b5fd;color:var(--accent)}[data-theme=light] .btn--ghost{color:var(--light-text)}[data-theme=light] .btn--ghost:hover:not(:disabled){background:rgba(109,40,217,.08);color:var(--accent)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--button-padding-x-md);height:var(--button-height-md);border:none;border-radius:var(--button-border-radius);font-family:inherit;font-size:var(--button-font-size-md);font-weight:var(--font-semibold);text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:var(--button-transition);position:relative;overflow:hidden;white-space:nowrap}.button:hover:not(:disabled){transform:translateY(-2px) scale(1.02)}.button:active:not(:disabled){transform:translateY(0) scale(.98)}.button:disabled{opacity:.6;cursor:not-allowed}.button:focus-visible{outline:var(--focus-outline-width) var(--focus-outline-style) var(--accent);outline-offset:var(--focus-outline-offset)}.button--primary{background:linear-gradient(120deg,var(--accent) 0,#8b5cf6 100%);color:#fff;box-shadow:0 2px 8px rgba(124,58,237,.2)}.button--primary:hover:not(:disabled){background:linear-gradient(120deg,var(--accent-deep) 0,#7c3aed 100%);box-shadow:0 6px 16px rgba(124,58,237,.35)}.button--secondary{background:transparent;color:var(--color-text-primary);border:2px solid var(--color-border)}.button--secondary:hover:not(:disabled){background:var(--color-interactive-secondary);color:var(--accent);border-color:var(--accent);box-shadow:0 6px 16px rgba(124,58,237,.15)}.button--ghost{background:transparent;color:var(--color-text-primary);border:none}.button--ghost:hover:not(:disabled){background:rgba(124,58,237,.1)}.button--full{width:100%}.button-modern{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--button-padding-x-md);height:var(--button-height-md);border:none;border-radius:var(--button-border-radius);font-family:inherit;font-size:var(--button-font-size-md);font-weight:var(--font-semibold);text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:var(--button-transition);position:relative;overflow:hidden;white-space:nowrap}.button-modern:hover:not(:disabled){transform:translateY(-2px) scale(1.02)}.button-modern:active:not(:disabled){transform:translateY(0) scale(.98)}.button-modern:disabled{opacity:.6;cursor:not-allowed}.button-modern:focus-visible{outline:var(--focus-outline-width) var(--focus-outline-style) var(--accent);outline-offset:var(--focus-outline-offset)}.button-modern.primary{background:linear-gradient(120deg,var(--accent) 0,#8b5cf6 100%);color:#fff;box-shadow:0 2px 8px rgba(124,58,237,.2)}.button-modern.primary:hover:not(:disabled){background:linear-gradient(120deg,var(--accent-deep) 0,#7c3aed 100%);box-shadow:0 6px 16px rgba(124,58,237,.35)}.button-modern.secondary{background:transparent;color:var(--color-text-primary);border:2px solid var(--color-border)}.button-modern.secondary:hover:not(:disabled){background:var(--color-interactive-secondary);color:var(--accent);border-color:var(--accent);box-shadow:0 6px 16px rgba(124,58,237,.15)}.button-modern.ghost{background:transparent;color:var(--color-text-primary);border:none}.button-modern.ghost:hover:not(:disabled){background:rgba(124,58,237,.1)}.button-modern--full{width:100%}.btn--icon,.button--icon,.button-modern--icon{width:var(--button-height-md);padding:var(--space-1);flex-shrink:0;border-radius:50%}.btn--sm.btn--icon,.button--icon{width:var(--button-height-md);height:var(--button-height-md);padding:var(--space-2);display:inline-flex;align-items:center;justify-content:center;line-height:0;flex-shrink:0}.button--icon svg{display:block;flex-shrink:0}.btn--lg.btn--icon{width:var(--button-height-lg)}.button--compact,.button--header,.button-modern--compact{padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.button--header{background:transparent;color:#fff;border:1px solid hsla(0,0%,100%,.3)}.button--header:hover:not(:disabled){background:hsla(0,0%,100%,.1);border-color:hsla(0,0%,100%,.5)}.auth-button{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.auth-button--signout:hover:not(:disabled){opacity:.8}.btn,.button,.button-modern{font-size:var(--button-font-size-md);min-height:44px}.btn--full,.button--full,.button-modern--full{width:100%}@media (min-width:640px){.btn,.button,.button-modern{min-height:auto}}