.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--fc-radius-btn);font-family:var(--fc-font);font-size:var(--bo-size-body);font-weight:var(--fc-weight-bold);letter-spacing:-.01em;line-height:1;cursor:pointer;border:1.5px solid rgba(0,0,0,0);transition:opacity var(--bo-transition-hover),background var(--bo-transition-hover),border-color var(--bo-transition-hover);outline:none}.button:focus-visible{outline:none;box-shadow:var(--fc-glow-focus);border-color:var(--fc-border-focus)}.button{transition:opacity var(--bo-transition-hover),transform var(--bo-transition-hover)}.button:active{opacity:var(--bo-press-opacity)}.button:disabled{opacity:var(--bo-disabled-opacity);pointer-events:none;cursor:not-allowed}.button--primary{background:var(--fc-primary-gradient);color:var(--fc-fg-on-primary);box-shadow:var(--fc-shadow-cta)}.button--secondary{background:var(--fc-surface-high);border-color:var(--fc-border-warm);color:var(--fc-fg)}.button--danger{background:rgba(239,68,68,.15);border-color:var(--fc-error);color:var(--fc-error)}.button--ghost{background:rgba(0,0,0,0);color:var(--fc-fg-secondary)}.button--ghost:hover{opacity:.7}.button--warn{background:rgba(245,158,11,.15);border-color:var(--fc-warning);color:var(--fc-warning)}.button--warn:hover{background:rgba(245,158,11,.25)}.button--sm{height:32px;padding:0 12px;font-size:var(--bo-size-label)}.button--lg{height:48px;padding:0 20px;font-size:var(--bo-size-h3)}.button--loading{cursor:not-allowed}