.btn{display:inline-flex;width:-moz-fit-content;width:fit-content;align-items:center;justify-content:center;gap:var(--space-xs);padding:var(--space-s) var(--space-m);border-radius:var(--radius-s);font-size:var(--text-button);font-weight:500;line-height:1;text-transform:uppercase;letter-spacing:.05em;text-decoration:none;border:none;cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all var(--transition-fast);position:relative;outline:none;background-color:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);box-shadow:var(--shadow-xs);&:hover{background-color:var(--btn-bg-hover);color:var(--btn-text-hover);border-color:var(--btn-border-hover)}&:active{transform:scale(.98)}&.w-full{width:100%}}.btn:disabled{opacity:.5;pointer-events:none;cursor:not-allowed}.btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.btn:active{transform:scale(.98)}.btn svg{width:1.6rem;height:1.6rem;flex-shrink:0}.btn--primary{background-color:var(--btn-bg);color:var(--btn-text);border:1px solid var(--btn-border);box-shadow:var(--shadow-xs)}.btn--primary:hover{background-color:var(--btn-bg-hover);color:var(--btn-text-hover);border-color:var(--btn-border-hover);box-shadow:var(--shadow-s)}.btn--secondary{background-color:var(--secondary);color:var(--secondary-foreground);box-shadow:var(--shadow-xs)}.btn--secondary:hover{background-color:var(--secondary-muted);box-shadow:var(--shadow-s)}.btn--outline{--btn-text:var(--fg);--btn-border:var(--fg);--btn-border-hover:var(--fg);--btn-bg:transparent}.btn--outline:hover{--btn-text-hover:var(--fg);background-color:var(--btn-bg-hover);color:var(--btn-text-hover);border-color:var(--btn-border-hover)}.btn.btn--white{--btn-bg:oklch(1 0 0);--btn-text:oklch(0.20 0 0);--btn-border:oklch(1 0 0)}.btn--outline.btn--white:not(:hover){background-color:transparent;color:oklch(1 0 0)}.btn--ghost{background-color:transparent;color:var(--fg);border:none}.btn--destructive{background-color:var(--error);color:var(--error-foreground);box-shadow:var(--shadow-xs)}.btn--destructive:hover{background-color:var(--error-muted);box-shadow:var(--shadow-s)}.btn--success{background-color:var(--success);color:var(--success-foreground);box-shadow:var(--shadow-xs)}.btn--success:hover{background-color:var(--success-muted);box-shadow:var(--shadow-s)}.btn--link{background-color:transparent;color:var(--primary);text-decoration:underline;text-underline-offset:.2em;padding:0;border-radius:0;border:none}.btn--link:hover{color:var(--primary-muted)}.btn--link:active{transform:none}.btn--xs{padding:var(--space-3xs) var(--space-xs);font-size:var(--t-xs);gap:var(--space-4xs)}.btn--xs svg{width:1.2rem;height:1.2rem}.btn--sm{padding:var(--space-xs) var(--space-s);font-size:var(--t-s);gap:var(--space-3xs)}.btn--sm svg{width:1.4rem;height:1.4rem}.btn--md{padding:var(--space-s) var(--space-m);font-size:var(--text-button)}.btn--lg{padding:var(--space-m) var(--space-l);font-size:var(--t-l);gap:var(--space-s)}.btn--lg svg{width:1.8rem;height:1.8rem}.btn--xl{padding:var(--space-l) var(--space-xl);font-size:var(--t-xl);gap:var(--space-s)}.btn--xl svg{width:2rem;height:2rem}.btn--icon{padding:var(--space-s);aspect-ratio:1}.btn--icon svg{width:1.8rem;height:1.8rem}.btn--icon.btn--sm{padding:var(--space-xs)}.btn--icon.btn--sm svg{width:1.6rem;height:1.6rem}.btn--icon.btn--lg{padding:var(--space-m)}.btn--icon.btn--lg svg{width:2rem;height:2rem}.btn--loading{position:relative;pointer-events:none;color:transparent}.btn--loading:after{content:"";position:absolute;width:1.6rem;height:1.6rem;top:50%;left:50%;margin-left:-.8rem;margin-top:-.8rem;border-radius:50%;border:2px solid;border-top:2px solid transparent;animation:spin .6s linear infinite}.btn--full{width:100%}.btn--auto{width:auto}.btn-group{display:flex;gap:var(--space-s)}.btn-group--vertical{flex-direction:column}.btn-group--attached .btn{border-radius:0}.btn-group--attached .btn:first-child{border-top-left-radius:var(--radius-s);border-bottom-left-radius:var(--radius-s)}.btn-group--attached .btn:last-child{border-top-right-radius:var(--radius-s);border-bottom-right-radius:var(--radius-s)}.btn-group--attached.btn-group--vertical .btn:first-child{border-top-left-radius:var(--radius-s);border-top-right-radius:var(--radius-s);border-bottom-left-radius:0}.btn-group--attached.btn-group--vertical .btn:last-child{border-bottom-left-radius:var(--radius-s);border-bottom-right-radius:var(--radius-s);border-top-right-radius:0}