.btn{box-sizing:border-box;min-height:var(--btn-height);border-radius:var(--btn-radius);font-family:var(--font-body);font-size:var(--type-lead);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard), scale var(--motion-press) var(--ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.btn--sm{min-height:var(--btn-height-sm);font-size:var(--type-small);gap:6px;padding:0 16px}.btn--block{width:100%}.btn--icon{width:var(--btn-height-sm);min-height:var(--btn-height-sm);height:var(--btn-height-sm);flex:none;padding:0}.btn--primary{background:var(--btn-primary-bg);color:var(--color-on-primary)}.btn--secondary{background:var(--color-surface-raised);border-color:var(--color-field-border);color:var(--color-ink)}.btn--icon.btn--secondary{border-color:var(--color-border)}.btn--quiet{min-height:var(--btn-height-sm);color:var(--color-link);text-underline-offset:3px;background:0 0;padding:0 2px;text-decoration:underline;text-decoration-thickness:1px}.btn--destructive{background:var(--color-surface-raised);border-color:var(--color-danger);color:var(--color-danger)}@media (hover:hover){.btn--primary:not(:disabled,[aria-disabled=true]):hover{background:var(--btn-primary-bg-hover)}.btn--secondary:not(:disabled,[aria-disabled=true]):hover{border-color:var(--color-accent);background:var(--color-hover-tint)}.btn--quiet:not(:disabled,[aria-disabled=true]):hover{color:var(--color-link-hover)}.btn--destructive:not(:disabled,[aria-disabled=true]):hover{background:var(--color-danger-tint)}}.btn:focus-visible{box-shadow:var(--btn-focus-ring);outline:none}.btn--quiet:focus-visible{border-radius:var(--radius-sm)}.btn:not(:disabled,[aria-disabled=true]):active{scale:.98}.btn:disabled{opacity:.5;cursor:default}.btn[data-state=loading]:disabled,.btn[data-state=success]:disabled{opacity:1}.btn[data-state=loading]{cursor:progress}.btn--primary[data-state=success]{background:var(--btn-success);border-color:var(--btn-success)}.btn__status{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}.btn--sm .btn__status{width:16px;height:16px}.btn__ring{stroke-width:2.2px;stroke-dasharray:63;stroke-dashoffset:42px;transform-box:fill-box;transform-origin:50%;animation:m-spin var(--motion-spin) linear infinite;transition:stroke-dashoffset var(--motion-standard) var(--ease-enter)}.btn__tick{stroke-width:2.4px;stroke-dasharray:14;stroke-dashoffset:14px;opacity:0;transition:stroke-dashoffset var(--motion-standard) var(--ease-enter) var(--motion-delay), opacity 0s linear var(--motion-delay)}.btn[data-state=success] .btn__ring{stroke-dashoffset:0;animation:none}.btn[data-state=success] .btn__tick{stroke-dashoffset:0;opacity:1}.btn[data-pending]{cursor:progress;pointer-events:none}.btn[data-pending]>svg{display:none}.btn[data-pending]:before{content:"";box-sizing:border-box;width:18px;height:18px;animation:m-spin var(--motion-spin) linear infinite;border:2px solid;border-right-color:#0000;border-radius:50%;flex:none}.btn--sm[data-pending]:before{width:15px;height:15px}@media (prefers-reduced-motion:reduce){.btn[data-pending]:before{animation:none}.btn:not(:disabled,[aria-disabled=true]):active{scale:none}.btn__ring,.btn__tick{transition:none}}
