.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),color var(--fast) var(--ease),transform var(--fast) var(--ease)}.btn-primary{background:var(--primary);color:white;box-shadow:var(--shadow-sm)}.btn-primary:hover{opacity:.9;box-shadow:var(--shadow-md)}.btn-secondary{background:var(--surface-solid);border:1px solid var(--border);color:var(--foreground)}.btn-secondary:hover{border-color:var(--border-strong);background:var(--hover)}.btn-tertiary{background:var(--primary-soft);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary),transparent 70%)}.btn-tertiary:hover{background:color-mix(in srgb,var(--primary),transparent 85%)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--foreground)}.btn-outline:hover{background:var(--hover);border-color:var(--border-strong)}.btn-ghost{background:transparent;border:1px solid transparent;color:var(--foreground)}.btn-ghost:hover{background:var(--hover)}.btn-cancel{background:var(--surface);border:1px solid var(--border);color:var(--foreground)}.btn-cancel:hover{background:var(--hover)}.btn-icon{width:2.25rem;height:2.25rem;padding:0;background:var(--surface);border:1px solid var(--border)}.btn-icon:hover{background:var(--hover)}.btn-success{background:var(--success-soft);color:var(--success);border:1px solid color-mix(in srgb,var(--success),transparent 70%)}.btn-success:hover{background:color-mix(in srgb,var(--success),transparent 85%)}.btn-danger{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger),transparent 70%)}.btn-danger:hover{background:color-mix(in srgb,var(--danger),transparent 85%)}.btn:disabled{opacity:.5;cursor:not-allowed}