.elf-btn{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-weight:var(--fw-semibold);font-size:var(--text-base);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex;position:relative}.elf-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.elf-btn:after{content:"";width:max(100%, var(--target-min));height:max(100%, var(--target-min));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.elf-btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.elf-btn--md{padding:var(--space-2) var(--space-4);font-size:var(--text-base)}.elf-btn--lg{padding:var(--space-3) var(--space-6);font-size:var(--text-md)}.elf-btn--primary{background-color:var(--color-accent-600);border-color:var(--color-accent-600);color:var(--text-inverse)}.elf-btn--primary:hover:not(:disabled){background-color:var(--color-accent-500);border-color:var(--color-accent-500)}.elf-btn--primary:active:not(:disabled){background-color:var(--color-accent-800);border-color:var(--color-accent-800);transform:translateY(1px)}.elf-btn--secondary{border-color:var(--line-hairline);color:var(--text-primary);background-color:#0000}.elf-btn--secondary:hover:not(:disabled){border-color:var(--text-muted);background-color:var(--surface-sunken)}.elf-btn--secondary:active:not(:disabled){background-color:var(--line-hairline);transform:translateY(1px)}.elf-btn--brand-apple{background-color:var(--brand-apple-fill);border-color:var(--brand-apple-line);min-height:44px;color:var(--brand-apple-ink);box-shadow:none;transition:none}.elf-btn--brand-apple:hover:not(:disabled),.elf-btn--brand-apple:active:not(:disabled){background-color:var(--brand-apple-fill);border-color:var(--brand-apple-line);color:var(--brand-apple-ink)}.elf-btn--ghost{color:var(--color-accent-700);background-color:#0000;border-color:#0000}.elf-btn--ghost:hover:not(:disabled){background-color:var(--color-accent-100);border-color:var(--color-accent-100)}.elf-btn--ghost:active:not(:disabled){background-color:var(--color-accent-100);transform:translateY(1px)}.elf-btn--nav{color:var(--text-primary);opacity:.7;background-color:#0000;border-color:#0000}.elf-btn--nav:hover:not(:disabled){opacity:1;background-color:var(--surface-sunken)}.elf-btn--nav:active:not(:disabled){opacity:1;background-color:var(--line-hairline);transform:translateY(1px)}.elf-btn--danger{background-color:var(--status-error);border-color:var(--status-error);color:var(--text-inverse)}.elf-btn--danger:hover:not(:disabled){background-color:color-mix(in srgb, var(--status-error) 85%, black);border-color:color-mix(in srgb, var(--status-error) 85%, black)}.elf-btn--danger:active:not(:disabled){background-color:color-mix(in srgb, var(--status-error) 70%, black);border-color:color-mix(in srgb, var(--status-error) 70%, black);transform:translateY(1px)}.elf-btn--link{color:var(--color-accent-700);background-color:#0000;border-color:#0000;padding:0}.elf-btn--link:hover:not(:disabled){text-decoration:underline}.elf-btn--link:active:not(:disabled){color:var(--color-accent-800);transform:none}.elf-btn--outline-primary{border-color:var(--color-accent-600);color:var(--color-accent-700);background-color:#0000}.elf-btn--outline-primary:hover:not(:disabled){background-color:var(--color-accent-100)}.elf-btn--outline-primary:active:not(:disabled){background-color:var(--color-accent-100);transform:translateY(1px)}.elf-btn--outline-danger{border-color:var(--status-error);color:var(--status-error-text);background-color:#0000}.elf-btn--outline-danger:hover:not(:disabled){background-color:var(--status-error-tint)}.elf-btn--outline-danger:active:not(:disabled){background-color:var(--status-error-tint);transform:translateY(1px)}.elf-btn--outline-warning{border-color:var(--status-warning);color:var(--status-warning-text);background-color:#0000}.elf-btn--outline-warning:hover:not(:disabled){background-color:var(--status-warning-tint)}.elf-btn--outline-warning:active:not(:disabled){background-color:var(--status-warning-tint);transform:translateY(1px)}.elf-btn--outline-success{border-color:var(--status-success);color:var(--status-success-text);background-color:#0000}.elf-btn--outline-success:hover:not(:disabled){background-color:var(--status-success-tint)}.elf-btn--outline-success:active:not(:disabled){background-color:var(--status-success-tint);transform:translateY(1px)}.elf-btn--icon{color:var(--text-secondary);padding:var(--space-2);border-radius:var(--radius-md);background-color:#0000;border-color:#0000}.elf-btn--icon.elf-btn--sm{padding:var(--space-1)}.elf-btn--icon.elf-btn--lg{padding:var(--space-3)}.elf-btn--icon:hover:not(:disabled){background-color:var(--line-hairline);color:var(--text-primary)}.elf-btn--icon:active:not(:disabled){background-color:var(--line-hairline)}.elf-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.elf-btn--loading{pointer-events:none}.elf-btn--loading .elf-btn__label{opacity:0}.elf-btn__spinner{width:1em;height:1em;animation:elf-spin var(--duration-base) linear infinite;border:2px solid;border-top-color:#0000;border-radius:50%;position:absolute}@keyframes elf-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.elf-btn{transition:none}.elf-btn__spinner{animation:none}}
