.spinner{--spinner-size:20px;--spinner-thickness:max(2px, calc(var(--spinner-size) * .14));width:var(--spinner-size);height:var(--spinner-size);color:inherit;background:radial-gradient(farthest-side, currentColor 92%, transparent) top/var(--spinner-thickness) var(--spinner-thickness) no-repeat,conic-gradient(from 0deg, transparent 0 22%, currentColor 100%);-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--spinner-thickness) - .5px), #000 calc(100% - var(--spinner-thickness) + .5px));-webkit-mask:radial-gradient(farthest-side, transparent calc(100% - var(--spinner-thickness) - .5px), #000 calc(100% - var(--spinner-thickness) + .5px));mask:radial-gradient(farthest-side, transparent calc(100% - var(--spinner-thickness) - .5px), #000 calc(100% - var(--spinner-thickness) + .5px));will-change:transform;border-radius:50%;flex-shrink:0;animation:.9s linear infinite spinner-rotate;display:inline-block}.spinner--light{color:#fff}.spinner--dark{color:#0a0a0a}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.spinner-block{padding:var(--spacing-2xl) var(--spacing-lg);color:var(--text-secondary);flex:1;justify-content:center;align-items:center;display:flex}@keyframes spinner-rotate{to{transform:rotate(1turn)}}
.button{justify-content:center;align-items:center;gap:var(--spacing-sm);font-family:var(--font-sans);border-radius:var(--radius);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;border:none;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative}.button:disabled{opacity:.4;cursor:not-allowed}.button:active:not(:disabled){transform:scale(.96)translateZ(0)}.button--default{background-color:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-hover)}.button--default:hover:not(:disabled){background-color:var(--bg-tertiary)}.button--primary{background-color:var(--accent);color:var(--bg-primary)}.button--primary:hover:not(:disabled){opacity:.85}.button--primary:active:not(:disabled){opacity:.7}.button--secondary{background-color:var(--bg-light);color:var(--accent);border:1px solid var(--border-hover)}.button--secondary:hover:not(:disabled){background-color:var(--bg-tertiary)}.button--success{background-color:var(--success);color:var(--bg-primary)}.button--success:hover:not(:disabled){opacity:.75}.button--danger,.button--destructive{background-color:var(--error);color:var(--bg-primary)}.button--danger:hover:not(:disabled),.button--destructive:hover:not(:disabled){opacity:.75}.button--ghost{color:var(--text-secondary);background-color:#0000}.button--ghost:hover:not(:disabled){background-color:var(--bg-tertiary);color:var(--text-primary)}.button--fill{width:100%}.button--sm{font-size:var(--fs-sm);padding:8px 12px}.button--md{font-size:var(--fs-base);padding:14px}.button--lg{font-size:var(--fs-base);padding:10px 20px}.button--xl{font-size:var(--fs-base);padding:18px}.button--icon{aspect-ratio:1;padding:10px}.button--loading{pointer-events:none}.button__icon{align-items:center;display:flex}.button__content{align-items:center;gap:var(--spacing-sm);display:flex}.button__content:empty{display:none}
