.button{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;justify-content:center;align-items:center;gap:.5rem;width:auto;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;text-decoration:none;transition:all .15s;display:inline-flex}.button:focus-visible{outline:2px solid var(--theme-accent);outline-offset:2px}.button--size-xs{min-height:28px;padding:.25rem .5rem;font-size:clamp(.75rem,1vw,.875rem)}.button--size-sm{min-height:34px;padding:.5rem .75rem;font-size:clamp(.875rem,1.2vw,1rem)}.button--size-md{min-height:40px;padding:.5rem 1rem;font-size:clamp(1rem,1.5vw,1.125rem)}.button--size-lg{min-height:48px;padding:.75rem 1.5rem;font-size:clamp(1.125rem,1.75vw,1.25rem)}.button--size-xl{min-height:56px;padding:1rem 2rem;font-size:clamp(1.25rem,2vw,1.5rem)}.button--shape-default{border-radius:.375rem}.button--shape-rounded{border-radius:.5rem}.button--shape-pill{border-radius:9999px}.button--shape-square{border-radius:0}.button--shape-circle{aspect-ratio:1;border-radius:50%;padding:0}.button--weight-normal{font-weight:400}.button--weight-medium{font-weight:500}.button--weight-semibold{font-weight:600}.button--weight-bold{font-weight:700}.button--variant-primary{background-color:var(--btn-bg,var(--theme-primary));color:var(--btn-color,var(--theme-text-inverse));border:var(--btn-border-width,0)solid var(--btn-border,transparent)}.button--variant-primary:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-primary-light));color:var(--btn-hover-color,var(--theme-text-inverse))}.button--variant-primary:active:not(:disabled){background-color:var(--theme-primary-dark)}.button--variant-secondary{background-color:var(--btn-bg,var(--theme-secondary));color:var(--btn-color,var(--theme-text-primary));border:var(--btn-border-width,0)solid var(--btn-border,transparent)}.button--variant-secondary:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-secondary-dark))}.button--variant-outline{color:var(--btn-color,var(--theme-text-primary));border:var(--btn-border-width,1px)solid var(--btn-border,var(--theme-border-dark));background-color:#0000}.button--variant-outline:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-secondary));border-color:var(--theme-border-dark)}.button--variant-ghost{color:var(--btn-color,var(--theme-text-primary));background-color:#0000;border:none}.button--variant-ghost:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-secondary))}.button--variant-link{color:var(--btn-color,var(--theme-accent));background-color:#0000;border:none;min-height:auto;padding:0}.button--variant-link:hover:not(:disabled){color:var(--btn-hover-color,var(--theme-accent-dark));text-decoration:underline}.button--variant-danger{background-color:var(--btn-bg,var(--theme-error));color:var(--btn-color,var(--theme-text-inverse));border:var(--btn-border-width,0)solid var(--btn-border,transparent)}.button--variant-danger:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-error));filter:brightness(1.1)}.button--variant-success{background-color:var(--btn-bg,var(--theme-success));color:var(--btn-color,var(--theme-text-inverse));border:var(--btn-border-width,0)solid var(--btn-border,transparent)}.button--variant-success:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-success));filter:brightness(1.1)}.button--variant-warning{background-color:var(--btn-bg,var(--theme-warning));color:var(--btn-color,var(--theme-text-primary));border:var(--btn-border-width,0)solid var(--btn-border,transparent)}.button--variant-warning:hover:not(:disabled){background-color:var(--btn-hover-bg,var(--theme-warning));filter:brightness(1.1)}.button--gradient{background:linear-gradient(135deg,var(--btn-gradient-from,var(--theme-accent))0%,var(--btn-gradient-to,var(--theme-accent-dark))100%);border:none}.button--gradient:hover:not(:disabled){filter:brightness(1.1)}.button--shadow-none{box-shadow:none}.button--shadow-sm{box-shadow:0 1px 2px #0000000d}.button--shadow-md{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a}.button--shadow-lg{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.button--full-width{width:100%}.button--icon-only.button--size-xs{width:28px}.button--icon-only.button--size-sm{width:34px}.button--icon-only.button--size-md{width:40px}.button--icon-only.button--size-lg{width:48px}.button--icon-only.button--size-xl{width:56px}.button--uppercase{text-transform:uppercase;letter-spacing:.05em}.button--hover-scale:hover:not(:disabled){transform:scale(1.02)}.button--hover-shadow:hover:not(:disabled){box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a}.button--pulse-on-hover:hover:not(:disabled){animation:1s infinite button-pulse}.button--loading{cursor:wait}.button--active{transform:scale(.98)}.button--disabled{opacity:.5;cursor:not-allowed}.button__icon{justify-content:center;align-items:center;display:flex}.button__icon svg{width:1em;height:1em}.button__icon--left{margin-right:.25rem}.button__icon--right{margin-left:.25rem}.button__spinner{justify-content:center;align-items:center;display:flex}.button__spinner-svg{width:1.2em;height:1.2em;animation:.8s linear infinite button-spin}.button__text{align-items:center;display:flex}@keyframes button-spin{to{transform:rotate(360deg)}}@keyframes button-pulse{0%,to{box-shadow:0 0 0 0 rgba(var(--theme-accent),.4)}50%{box-shadow:0 0 0 10px rgba(var(--theme-accent),0)}}
